me@helium 8 år sedan
förälder
incheckning
72f97f658c
1 ändrade filer med 35 tillägg och 0 borttagningar
  1. 35 0
      CanvasHomeWork.md

+ 35 - 0
CanvasHomeWork.md

@@ -0,0 +1,35 @@
+# ООП и Canvas: ДЗ.
+
+## ООП
+
+Создайте функцию-конструктор для создания объектов кругов (`Circle`), которые мы рисуем. В объектах должны храниться:
+- координаты
+- диаметр
+- цвет
+Функция-конструктор сохраняет каждый новый объект в массиве `items`, находящийся за пределами области видимости конструктора 
+(в более общей области видимости). Каждый объект имеет метод `draw`, который отрисовывает его на `Canvas`.
+
+### `redrawAll`
+
+Создайте функцию `redrawAll`, которая очищает `Canvas` и в цикле отрисовывает каждый объект из массива `items` используя метод `draw`
+
+### undo
+
+Сделайте возможность отмены добавления круга при нажатии средней кнопки мыши. Для этого измените массив `items` и вызовите `redrawAll`
+
+### resize
+
+Сделайте возможность изменения диаметра всех кругов с помощью колеса мыши. Для этого измените диаметр у всех объектов в массиве `items` и вызовите
+`redrawAll`
+
+## Синий пояс
+
+Добавьте тот или иной плагин для выбора цвета и (погуглите `colorPicker`) и сделайте возможность смены цвета всех кругов
+
+## Черный пояс
+
+Сделайте возможность выбора кругов, над которыми вы производите операции. Для этого нужно:
+- Сделать визуальный переключатель режима рисования или выбора кругов (на ваш выбор)
+- в режиме выбора определять к какому элементу ближе всего произошел клик и добавлять его в специальный массив `selected`. Показывать пользователю, 
+  что элемент изменен, например с помощью штриховой окружности вокруг элемента.
+- все операции проводить над `selected`, если же он пуст, то над `items`