Различия между версиями 1 и 2
Версия 1 от 2013-12-14 19:07:01
Размер: 2662
Редактор: FrBrGeorge
Комментарий:
Версия 2 от 2013-12-14 19:21:51
Размер: 2934
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 13: Строка 13:
  1. Модифицировать «графический редактор»:
   * Добавить и задействовать класс `Circle` для рисования окружности (унаследовать его от `Line`, обратите внимание, что даже метод `redraw()` годится!)
  1. Модифицировать «[[attachment:2013-12-13-greditor.py|простейший графический редактор]]»:
   * Обратите внимание на то, как в методе `__init__()` класса `Line` вызывается метод `__init__()` класса `Dot`
   *
Добавить и задействовать класс `Circle` для рисования окружности (унаследовать его от `Line`, заметьте, что даже метод `redraw()` не придётся переписывать!)
Строка 17: Строка 18:
   * Сделать цвет объекта полем и передавать его при `__init__()`    * Сделать цвет объекта полем и передавать его при `__init__()` во все объекты

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

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

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

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

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

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

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

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

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

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

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

  • {o} — тема по Linux

  • <!> ­— тема повышенной сложности

  • {i} — теоретическое задание

  • {*} — тема для самостоятельного изучения


CategoryClass CategoryVmsh

LecturesVMSH/Python/2013-12-13 (последним исправлял пользователь FrBrGeorge 2013-12-20 14:21:07)