|
@@ -1,43 +1,26 @@
|
|
# ООП и Canvas: ДЗ.
|
|
# ООП и Canvas: ДЗ.
|
|
|
|
|
|
-## click
|
|
|
|
-
|
|
|
|
-Сделайте так, что бы рисование происходило не только по движению мыши, но и при первом клике.
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-## updateAll
|
|
|
|
-
|
|
|
|
-Создайте функцию `updateAll`, которая очищает `Canvas` и в цикле вызывает переданную в качестве параметра функцию-callback, которая делает определенные операции с каждым объектом из массива `circles`, после чего отрисовывает его используя метод `draw`.
|
|
|
|
-Если параметр не передан, то функция просто очищает канвас и перерисовывает все кружки.
|
|
|
|
-
|
|
|
|
-```javascript
|
|
|
|
-updateAll(function(circle){
|
|
|
|
- circle.setR(circle.getR() +1);
|
|
|
|
-})
|
|
|
|
-```
|
|
|
|
-
|
|
|
|
-пример выше должен увеличить размер всех кружков на 1. (т. е. заменить текущую реализацию кнопки `+`)
|
|
|
|
|
|
|
|
## clear
|
|
## clear
|
|
|
|
|
|
-Сделайте очистку поля рисования. Используйте `updateAll`.
|
|
|
|
|
|
+Сделайте очистку поля рисования.
|
|
|
|
|
|
## color
|
|
## color
|
|
|
|
|
|
-Сделайте выбор цвета. Добавьте методы `setColor` и `getColor` в объект `Circle`.
|
|
|
|
|
|
+Сделайте выбор цвета. Добавьте методы `setColor` и `getColor` в объект `Drawable`.
|
|
|
|
|
|
### undo
|
|
### undo
|
|
|
|
|
|
-Сделайте возможность отмены добавления круга. Используйте `updateAll`
|
|
|
|
|
|
+Сделайте возможность отмены добавления.
|
|
|
|
|
|
### resize
|
|
### resize
|
|
|
|
|
|
-Сделайте возможность изменения диаметра всех кругов с помощью колеса мыши. Используйте `updateAll`
|
|
|
|
|
|
+Сделайте возможность изменения диаметра всех кругов с помощью колеса мыши. Используйте `forAll`
|
|
|
|
|
|
## Синий пояс
|
|
## Синий пояс
|
|
|
|
|
|
-Сделайте возможность выбора кругов, над которыми вы производите операции. Для этого нужно:
|
|
|
|
-- Сделать визуальный переключатель режима рисования или выбора кругов (на ваш выбор)
|
|
|
|
|
|
+Сделайте возможность выбора примитивов, над которыми вы производите операции. Для этого нужно:
|
|
|
|
+- Сделать визуальный переключатель режима рисования или выбора (на ваш выбор)
|
|
- в режиме выбора определять к какому элементу ближе всего произошел клик и добавлять его в специальный массив `selected`. Показывать пользователю,
|
|
- в режиме выбора определять к какому элементу ближе всего произошел клик и добавлять его в специальный массив `selected`. Показывать пользователю,
|
|
что элемент выбран, например с помощью штриховой окружности вокруг элемента. Повторный клик отменяет выбор элемента. Модифицируйте `draw` таким образом
|
|
что элемент выбран, например с помощью штриховой окружности вокруг элемента. Повторный клик отменяет выбор элемента. Модифицируйте `draw` таким образом
|
|
- все операции проводить над элементами `selected`, если же он пуст, то над будущими элементами.
|
|
- все операции проводить над элементами `selected`, если же он пуст, то над будущими элементами.
|