Я пытаюсь написать код, используя HTML-холст, который создаст строку, начинающуюся там, где происходит событие mousemove.Линия имеет определенное направление и должна продолжаться до тех пор, пока она не исчезнет с экрана.У меня проблема в том, что каждый раз, когда я двигаю мышь, начинается новая строка (это хорошо), но предыдущая строка перестает расширяться.Я считаю, что проблема заключается в том, что каждая новая строка принимает набор параметров с тем же именем, что и предыдущая строка, однако я не уверен, что это проблема, и при этом я не знаю, как ее исправить.
Вот jsfiddle моего текущего кода: https://jsfiddle.net/tdammon/bf8xdyzL/
Я начинаю создавать объект с именем mouse, который принимает параметры x и y.xbeg
и ybeg
будут начальными координатами для моих линий.
let canvas = document.querySelector('canvas');
canvas.width = window.innerWidth;
canvas.height= window.innerHeight;
let c = canvas.getContext('2d');
let mouse ={
x:undefined,
y:undefined,
}
window.addEventListener("mousemove",function(event){
mouse.x = event.x;
mouse.y = event.y;
xbeg = mouse.x;
ybeg = mouse.y;
})
Далее я создаю функцию анимации, которая постоянно вызывает себя.Я создаю новый линейный объект, который примет параметры xbeg
и ybeg
для начальных точек и xbeg+10
и ybeg+10
в качестве конечной точки.Затем функция увеличивает xbeg
и ybeg
.Мне бы хотелось, чтобы эта функция создавала новые линии, которые не прекращаются при каждом перемещении мыши.
function animate() {
requestAnimationFrame(animate);
new Line(xbeg,ybeg,xbeg+10,ybeg+10)
c.beginPath();
c.moveTo(xbeg,ybeg);
c.lineTo(xbeg+10,ybeg+10);
c.stroke();
xbeg += 1;
ybeg += 1;
}