Глава 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 · прямоугольники и овалы
Открыть ноутбук →