在不同的浏览器中使用相同的数学计算得到不同的结果。

10 浏览
0 Comments

在不同的浏览器中使用相同的数学计算得到不同的结果。

编辑:由于Chrome已更新浏览器,所以这个问题有些多余,因为他们已经修复了一个内部bug,这个问题不再发生。

我有一个以画布中心为锚点的圆的动画。

圆越大,运动越不稳定。但不仅如此,至少对我来说,Chrome比Firefox要差得多。

数学计算在这个函数中完成:

function update(deltaTime){

var centerX = canvas.width/2;

var centerY = canvas.height/2;

i.currentAngle = (i.currentAngle || 0) + (deltaTime/1000 * i.rotationSpeed);

if(i.currentAngle>2*Math.PI){

i.currentAngle-=2*Math.PI;

}

i.x = centerX + (i.radius*i.factor) * Math.cos(i.currentAngle);

i.y = centerY + (i.radius*i.factor) * Math.sin(i.currentAngle);

}

这是一个工作示例中的代码:

http://jsfiddle.net/96QDK/

Chrome输出结果:

[图片链接]

Firefox输出结果:

[图片链接]

Firefox似乎最接近我想要的结果,而Chrome则很奇怪。

为什么我会得到如此不同的结果?我应该提到我询问了几个人他们看到了什么,每个人都看到了不同程度的不准确性。

0