将对象的旋转设置为其轴三个js

时间:2015-06-24 09:39:11

标签: object rotation three.js

我尝试使用以下方法设置对象在其自身轴上的旋转:

object.rotateOnAxis(new THREE.Vector3(1,0,0) , Math.PI)
在渲染函数中

,但对象在每次渲染时都会旋转。有没有办法在它自己的轴上设置旋转,就像使用:

object.rotation.x = Math.PI

object.rotation.set(Math.PI,0,0)

设置世界轴的旋转?

2 个答案:

答案 0 :(得分:0)

只需从render方法中删除以下代码即可。

object.rotateOnAxis(new THREE.Vector3(1,0,0) , Math.PI)

您可以将其置于object的声明中。当然,您也可以在那里设置旋转(在render中),但这会不必要地降低性能。

只需将其放在渲染功能之外。

编辑:你可以简单地使用

object.rotation.x += rotationSpeed; 

render方法中让它旋转。

答案 1 :(得分:0)

如果旋转必须在渲染功能处进行,则意味着模型在每次渲染时都在改变旋转。只需找到旋转差异并使用上述代码将其应用于模型:

object.rotateOnAxis(new THREE.Vector3(1,0,0) , Math.PI);

将旧旋转和新旋转存储在变量中并应用差异:

var old_rotation = value1;
var new_rotation = value2;
var Drotation = value1-value2;

如果差异为负或正,则显示旋转方向,因此只需应用:

object.rotateOnAxis(new THREE.Vector3(1,0,0) , Drotation);

<强>更新:  我找到的最简单的方法是:

object.rotateX(angle);
object.rotateY(angle);
object.rotateZ(angle);

这会使物体围绕其轴旋转:D