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