Классы и объекты, подход второй

Домашнее задание

  1. {i} Прочитать про классы в учебнике (лучше начать прямо с раздела Первый взгляд на классы)

  2. Модифицировать «простейший графический редактор»:

    • Обратите внимание на то, как в методе __init__() класса Line вызывается метод __init__() класса Dot

    • Добавить и задействовать класс Circle для рисования окружности (унаследовать его от Line, заметьте, что даже метод redraw() не придётся переписывать!)

    • Добавить и задействовать класс Polygon для рисования многоугольника-ломаной. Трудность: в многоугольнике неизвестно сколько точек (скажем, не больше 1000). Вариант решения: отличать событие «ввод фигуры закончен» и добавить соответствующий метод сразу во все классы; в Polygon этот метод будет менять ndots

    • {*} Добавить ещё какие-нибудь классы, насколько фантазии хватит: например, непараллельный сторонам экрана квадрат (по диагонали), эллипс (по трём точкам) и т. п.

    • Сделать цвет объекта полем и передавать его при __init__() во все объекты

    • {*} реализовать выбор цвета (подсказка: surface.get_at())

    • 2013-12-13-greditor2.py

Условные обозначения


CategoryClass CategoryVmsh