保持增加旋转度(超过360度)是不好的做法

时间:2017-03-04 16:32:01

标签: javascript rotation degrees radians

我正在尝试使用创意javascript框架P5.js,而且我经常使用度数来旋转球体。但是,我通过不断增加变量并将旋转基于该变量来实现。无限增加变量是不好的做法?当它到达360时,我应该将旋转重置为0吗?

示例:

this.deg = 0;

this.show = function(){
    rotateY(radians(this.deg));
    sphere(this.x, this.y, this.r);
    this.deg++; // Continuously increasing the deg :(
}

1 个答案:

答案 0 :(得分:0)

嗯,这取决于。

如果你谈论的是它会影响p5.js的任何表现,那么不,因为它很可能已经在程度上做了类似this.deg%=360的事情。

但是你应该小心JavaScript中的非常大的整数,因为你可能会失去非常大的整数的精度或者可能会超出大小。

除此之外,你应该把事情保持在360以下,以避免在调试过程中出现任何混淆。

任何简单的方法都是在代码中使用模数运算符,如此

this.deg = 0;

this.show = function(){
rotateY(radians(this.deg));
sphere(this.x, this.y, this.r);
this.deg++; 
this.deg%=360; // keep it under 360 deg , always
}

阅读有关JavaScript中整数安全限制的更多信息:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER以及此stackoverflow问题:What is JavaScript's highest integer value that a Number can go to without losing precision?