# ООП и Canvas: ДЗ.

## ООП

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

### `redrawAll`

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

### undo

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

### resize

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

## Синий пояс

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

## Черный пояс

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