CanvasHomeWork.md 2.7 KB

ООП и Canvas: ДЗ.

ООП

Создайте функцию-конструктор для создания объектов кругов (Circle), которые мы рисуем. В объектах должны храниться:

  • координаты
  • диаметр
  • цвет Функция-конструктор сохраняет каждый новый объект в массиве items, находящийся за пределами области видимости конструктора (в более общей области видимости). Каждый объект имеет метод draw, который отрисовывает его на Canvas.

redrawAll

Создайте функцию redrawAll, которая очищает Canvas и в цикле отрисовывает каждый объект из массива items используя метод draw

undo

Сделайте возможность отмены добавления круга при нажатии средней кнопки мыши. Для этого измените массив items и вызовите redrawAll

resize

Сделайте возможность изменения диаметра всех кругов с помощью колеса мыши. Для этого измените диаметр у всех объектов в массиве items и вызовите redrawAll

Синий пояс

Добавьте тот или иной плагин для выбора цвета и (погуглите colorPicker) и сделайте возможность смены цвета всех кругов

Черный пояс

Сделайте возможность выбора кругов, над которыми вы производите операции. Для этого нужно:

  • Сделать визуальный переключатель режима рисования или выбора кругов (на ваш выбор)
  • в режиме выбора определять к какому элементу ближе всего произошел клик и добавлять его в специальный массив selected. Показывать пользователю, что элемент выбран, например с помощью штриховой окружности вокруг элемента. Повторный клик отменяет выбор элемента.
  • все операции проводить над элементами selected, если же он пуст, то над элементами items (т. е. как было описано выше)