Three.js Cube - 旋转到随机边

时间:2016-03-31 19:57:17

标签: javascript three.js cube

我有一个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非常高,立方体需要沿着时间和很多旋转旋转到帖子......

1 个答案:

答案 0 :(得分:1)

根据this看起来是正确的,但听起来您在循环中重复调用此代码,如果值不断增加。确保在需要时仅将旋转应用于单一时间。

并确保您的x和y值保持在0 <= value < Math.PI * 2范围内。