Есть <canvas> элемент и задание сделать рисовалку к нему.
Нужны следущие функции:
- Рисование линий, юзер кликает левой кнопокой мышки по координате на канвасе, программа запоминает ее, юзер передвигает мышку и отпускает левую кнопку, программа рисует линию точка А -> точка Б. (это я разобрался)
- Во время рисования, программа должна отображать временную линию, которая бегает за курсором, типа как в пэинте, как только юзер отпускает кнопку, линия становится постоянной.
Я сделал следущее:
3 ивентлистенера к канвасу (mousedown/mousemove/mouseup)
mousedovn listener
делает следущее:
Код:
|
1) вычисляет координаты начала линии (работает успешно)
2) сохраняет их в глобальную переменную
3) дает значение переменной а true, переменная нужна обработчику события mousemove |
mouseup listener
делает следущее:
Код:
|
1) вычисляет координаты точки где юзер отпустил кнопку мышки
2) рисует линию
3) значение переменной a ставит обратно false |
mousemove listener
содержит большое условие (если а = true) то выполняется весь код, если a = false (ранее не было инициированно рисование линии) то не делает ничего
ну и соответственно тоже рисует линию до текущей позиции указателя от начала
Все работает, но линии вспомогательные конечно же не исчезают
если перед отрисовкой в mousemove добавить context.canvas.width = context.canvas.width, то, разумеется, программа работает как и должно в задании, но дает нарисовать только одну линию
Хотелось бы получить совет как исправить ситуацию, не готовый код, а просто совет в каком направлении думать