设置物体在其轴上的旋转三个js
Set the rotation of an object at its axis three js
我尝试使用以下方法设置对象在其自身轴上的旋转:
object.rotateOnAxis(new THREE.Vector3(1,0,0) , Math.PI)
在渲染函数中,但对象在每次渲染中都在旋转。有没有办法在它自己的轴上设置旋转,就像使用时一样:
object.rotation.x = Math.PI
或
object.rotation.set(Math.PI,0,0)
设置世界轴的旋转?
只需从 render
方法中删除以下代码。
object.rotateOnAxis(new THREE.Vector3(1,0,0) , Math.PI)
你可以把它放在object
的声明中。当然,您也可以在那里设置旋转(在 render
中),但这会不必要地降低性能。
干脆放在render函数外
编辑:您可以简单地使用
object.rotation.x += rotationSpeed;
在render
方法中让它旋转。
如果旋转必须在渲染函数中进行,这意味着模型在每次渲染时都会改变旋转。简单地找到旋转差异并使用提到的代码将其应用于模型:
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
我尝试使用以下方法设置对象在其自身轴上的旋转:
object.rotateOnAxis(new THREE.Vector3(1,0,0) , Math.PI)
在渲染函数中,但对象在每次渲染中都在旋转。有没有办法在它自己的轴上设置旋转,就像使用时一样:
object.rotation.x = Math.PI
或
object.rotation.set(Math.PI,0,0)
设置世界轴的旋转?
只需从 render
方法中删除以下代码。
object.rotateOnAxis(new THREE.Vector3(1,0,0) , Math.PI)
你可以把它放在object
的声明中。当然,您也可以在那里设置旋转(在 render
中),但这会不必要地降低性能。
干脆放在render函数外
编辑:您可以简单地使用
object.rotation.x += rotationSpeed;
在render
方法中让它旋转。
如果旋转必须在渲染函数中进行,这意味着模型在每次渲染时都会改变旋转。简单地找到旋转差异并使用提到的代码将其应用于模型:
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