在Three.js中旋转对象的限制是什么?我想知道能够将网格旋转重置为零而不是继续使用更大的数字,我有以下代码
maxRotation = ?;//What is the max
mesh.rotation.y += 0.01;
if(mesh.rotation.y >= maxRotation)
{
mesh.rotation.y = 0;
}
当它增加y时,它永远不会达到旋转重置它只是继续下去的点,我虽然限制是360度旋转然后是零,但它在3D中是不同的。 如果这是一个不好的问题,请不要 - 请告诉我,我告诉我并将问题记下来
答案 0 :(得分:0)
理论上没有最大旋转这样的东西,因为它是一种周期性的功能。这意味着在一定的旋转点之后,您将到达起点并继续" new"回转。但是,如果你问的是什么时候到达那么它是360度或数学2 * Math.PI(那两个是等价的)但PI符号是优先的。
只是为了演示,在2 * Math.PI之后你将得到起点因此2 * Math.PI相当于0轮换以及4 * Math.PI(基本上每个2k * Math.PI相当于0 ,其中k是任何可能的整数,包括0)。
答案 1 :(得分:0)
单次旋转为360度或Math.PI * 2
。
您可以多次旋转,但如果要重置,PI * 2就应该是它。
var maxRotation = Math.PI * 2;
mesh.rotation.y += 0.01;
if(mesh.rotation.y >= maxRotation)
{
mesh.rotation.y = 0;
}
此外,您可能希望在设置变量时存储一次maxRotation