2017-02-28 56 views

回答

1

你可以将其存储在自己的定制对象。让事件侦听器监听到每个mousemove事件它被点击之后:

var pointArray = []; 

onMouseMove(event){ 
    var pointData = { 
     x: event.screenX, 
     y: event.screenY, 
     time: Date.now() 
    } 

    pointArray.push(pointData); 
} 

现在你有一个长pointArray充满位置&时间的信息!顺便说一下,每秒存储数据10次没有意义,因为如果鼠标不移动,只会获得冗余信息。最好只听mousemove

+0

有道理。我会考虑这个。 – AxlSmith

+1

为什么在所有鼠标事件都具有高分辨率时间戳时使用Date对象。 'event.timeStamp'以毫秒为单位精确到1微秒 – Blindman67

+0

我刚刚在FFox中​​测试了你的方法,并且在值改变之前我有124'console.logs',它读取'18446744072697221000'。 Date.now()'有更好的结果。 – Marquizzo

0

任何行可以表示为个点的数目。如果您存储每个点的时间戳,则可以推断该线上任意两点之间的平均速度。

Paper.js上面链接的是一个有趣的JS代表路径的例子。我建议研究现有的库来创建和表示Javascript中的路径。从长远来看,与为自己的图书馆写入功能相比,它会节省您的时间。

这是一个相关的堆栈溢出答案有关Javascript绘图库的差异。

+0

时间戳是个好主意。我担心平均速度不够,所以可能无法正常工作。无论如何,我会进一步调查该方法... – AxlSmith