Browse Source

canvas hw10CanvasProtoHomework.md

Ivan Asmer 7 years ago
parent
commit
ffb7905404
1 changed files with 52 additions and 0 deletions
  1. 52 0
      A/10CanvasProtoHomework.md

+ 52 - 0
A/10CanvasProtoHomework.md

@@ -0,0 +1,52 @@
+# Canvas OOP Proto ДЗ
+
+## Пояснения.
+Предполагается что вы разберетесь с http://canvas.asmer.fe.a-level.com.ua, и будете наращивать функционал по мотивам. При создании любого визуального элемента вы должны запускать конструктор и перерисовывать всё, 
+что есть в instances.
+
+## OOP
+
+Переведите рисовалку на ООП рельсы
+
+## Tail
+используйте событие `mousemove` и поле `event.buttons`
+
+## Size
+Добавьте возможность изменять размер кружков и линий (толщина). `input type='number'` в помощь
+
+## Color
+
+Добавьте возможность изменять цвет кружков. `input type='color'` в помощь
+
+## Rectangle
+
+Добавьте наследник `rectangle`, который будет отрисовывать прямоугольники.
+
+## Line
+
+Добавьте наследник `line`, который будет отрисовывать линию. 
+
+## LineDrag
+
+Пусть полупрозрачная линия появляется на лету, пока зажата кнопка мыши. Когда же вы отпускаете, линия должна создаваться.
+
+## RectangeDrag
+
+Сделайте тоже самое с прямоугольником - при создании прямоугольника вы тянете "тень" прямоугольника, а потом он создается.
+
+## Undo
+Предусмотрите возможность отмены последних действий
+
+## Select
+Предусмотрите возможность "выбора объекта" с помощью клика *рядом* с объектом при зажатой клавише `Ctrl`. Используйте массив `selected` в прототипе `Drawable` для хранения списка текущих выбранных объектов.
+
+## ChangeSelected
+При изменении цвета или размера меняйте эти свойства у всех выделенных элементах. Сделайте функцию forSelected по аналогии с forAll, которая будет перебирать все выбранные элементы и вызывать callback 
+для изменения того или иного параметра.
+
+## DeleteSelected
+Сделайте возможность удаления элементов. Для этого нужно удалить элементы из массива `Drawable.prototype.instances`
+
+
+
+