Глава 18 · Проект: приложение для рисования
Квадраты и прямоугольники! Круги и овалы!
Canvas умеет рисовать готовые фигуры по двум углам — не только линии.
Прямоугольники и овалы рисуются похожим образом — Canvas умеет строить их сразу по двум противоположным углам, без ручного вычисления сторон:
pryamougolniki_ovaly.py
def vo_vremya_risovaniya(event):
if tekuschaya_figura == "pryamougolnik":
canvas.create_rectangle(
start_x, start_y, event.x, event.y,
outline=tekuschij_cvet, width=tolschina,
)
elif tekuschaya_figura == "oval":
canvas.create_oval(
start_x, start_y, event.x, event.y,
outline=tekuschij_cvet, width=tolschina,
)
Промежуточные фигуры множатся
Если рисовать так, как показано выше, при каждом движении мыши будет создаваться новая фигура поверх предыдущей — а не одна, растущая вместе с движением. В полной программе (раздел 18.7) эта проблема решена: предыдущая «черновая» фигура удаляется перед тем, как нарисовать новую.
Практика в Jupyter Notebook
18-05-figury.ipynb · прямоугольники и овалы