[问题] 关于js取得鼠标座标

楼主: nckux56 (116U质文)   2018-04-10 23:38:16
各位大大好
小弟最近跟朋友组团 利用闲余时间写程式
最近写了一个cancvas
<canvas id="draw" onmousedown="start()" onmousemove="move()" onmouseup="stop()">
简单说就是要画直线(小画家那种 可任意拉的@@) 现在任意画可以 但画直线出了点问题
目前暂定想法是在start()输出鼠标座标给move()
现在问题是 不知道该如何输出@@
function start() {
draws = true; //进入绘图模式
context.beginPath();//绘画开始
startPoint = { x: event.clientX,
y: event.clientY }
return startPoint;
}
function move(startPoint) {
if (draws) {
context.moveTo(startPoint.x, startPoint.y);
context.lineTo(event.clientX, event.clientY); //下一点
context.stroke(); //绘画
}
}
很明显的startPoint 有问题 但不知道该如何解决><
谢谢版上的大神
作者: jhnny97 (≡(  ゚Д゚))   2018-04-11 04:19:00
canvas画完就是画完了,画过的不能改,只能覆蓋。所以你需要用clearRect()把原先的画清空、再依据鼠标位置补上新的线。至于不同函数间存取值,最直接的是全域变量,有兴趣的话google一下也有比较不污染全域的做法,这里不多谈。另外为了清空canvas时,不要清空原先的画,你需要getImageData()、putImageData()帮助你存取canvas内容

Links booklink

Contact Us: admin [ a t ] ucptt.com