Сделайте так, что бы рисование происходило не только по движению мыши, но и при первом клике.
Создайте функцию updateAll
, которая очищает Canvas
и в цикле вызывает переданную в качестве параметра функцию-callback, которая делает определенные операции с каждым объектом из массива circles
, после чего отрисовывает его используя метод draw
.
Если параметр не передан, то функция просто очищает канвас и перерисовывает все кружки.
updateAll(function(circle){
circle.setR(circle.getR() +1);
})
пример выше должен увеличить размер всех кружков на 1. (т. е. заменить текущую реализацию кнопки +
)
Сделайте очистку поля рисования. Используйте updateAll
.
Сделайте выбор цвета. Добавьте методы setColor
и getColor
в объект Circle
.
Сделайте возможность отмены добавления круга. Используйте updateAll
Сделайте возможность изменения диаметра всех кругов с помощью колеса мыши. Используйте updateAll
Сделайте возможность выбора кругов, над которыми вы производите операции. Для этого нужно:
selected
. Показывать пользователю,
что элемент выбран, например с помощью штриховой окружности вокруг элемента. Повторный клик отменяет выбор элемента. Модифицируйте draw
таким образомselected
, если же он пуст, то над будущими элементами.Сделайте неразрывное рисование кружков. Даже если пользователь двигает мышью быстро, кружки должны отрисовываться неразрывно.