我有一个Three.js Cube,有六个不同的一面。
我写了一个随机数生成器shich生成1-6之间的数字。 在按钮上单击我想将立方体旋转到侧面(数字)。
来自Stallion(http://jsfiddle.net/majman/6vrH8/)的小提琴看起来不错,但不适合我,因为我不知道我有多少需要将立方体转向特定的一面......
我的尝试是这样的:
mesh.rotation.x =0;
mesh.rotation.y =0;
//face2
mesh.rotation.x =0;
mesh.rotation.y =1.571;
//face3
mesh.rotation.x =0;
mesh.rotation.y =3.142;
...
mesh.rotation.x =0;
mesh.rotation.y =4.714;
...
mesh.rotation.x =1.571;
mesh.rotation.y =0;
...
mesh.rotation.x =-1.571;
mesh.rotation.y =0;
然后我想+ =或 - =旋转到上面的数字。 问题是,在几轮之后,mesh.rotation.x / y太高(100+),需要很长时间才能进入面部。
我该怎么办? 这是小提琴:https://jsfiddle.net/crinca15/2o8n3xox/
更新: 我觉得有误解...... 单击“开始”按钮,立方体开始旋转。 在停止按钮上,立方体应该从1-6(随机)到一侧。 我上面写的面孔。
现在我可以用于(mesh.rotation.x == wanted.rotation.x; mesh.rotation.x -= 0.02)
问题是,如果mesh.rotation-value非常高,立方体需要沿着时间和很多旋转旋转到帖子......
答案 0 :(得分:1)
根据this看起来是正确的,但听起来您在循环中重复调用此代码,如果值不断增加。确保在需要时仅将旋转应用于单一时间。
并确保您的x和y值保持在0 <= value < Math.PI * 2
范围内。