如何设置对象沿世界 x 轴旋转 90 度?
How to set rotation of object 90 degrees along world x-axis?
基本上我想设置物体沿世界轴旋转任意角度。我目前正在使用 rotateAroundWorldAxis 函数(在另一个线程中找到)来尝试这样做。
function render() {
// update mesh position
rotateAroundWorldAxis(mesh, new THREE.Vector3(1, 0, 0), angle);
renderer.render(scene, camera);
}
function rotateAroundWorldAxis(object, axis, radians) {
rotWorldMatrix = new THREE.Matrix4();
rotWorldMatrix.makeRotationAxis(axis.normalize(), radians);
rotWorldMatrix.multiply(object.matrix); // pre-multiply
object.matrix = rotWorldMatrix;
object.rotation.setFromRotationMatrix(object.matrix);
}
问题是我只想设置角度(如rotation.x =角度),而不是增加 (如 rotation.x += 角度)。有人知道如何调整上述函数 (rotateAroundWorldAxis) 以允许我设置角度而不是增加角度吗?
删除该函数中的第三行
rotWorldMatrix.multiply(object.matrix); // pre-multiply
这是"adds"两个旋转在一起的线。
基本上我想设置物体沿世界轴旋转任意角度。我目前正在使用 rotateAroundWorldAxis 函数(在另一个线程中找到)来尝试这样做。
function render() {
// update mesh position
rotateAroundWorldAxis(mesh, new THREE.Vector3(1, 0, 0), angle);
renderer.render(scene, camera);
}
function rotateAroundWorldAxis(object, axis, radians) {
rotWorldMatrix = new THREE.Matrix4();
rotWorldMatrix.makeRotationAxis(axis.normalize(), radians);
rotWorldMatrix.multiply(object.matrix); // pre-multiply
object.matrix = rotWorldMatrix;
object.rotation.setFromRotationMatrix(object.matrix);
}
问题是我只想设置角度(如rotation.x =角度),而不是增加 (如 rotation.x += 角度)。有人知道如何调整上述函数 (rotateAroundWorldAxis) 以允许我设置角度而不是增加角度吗?
删除该函数中的第三行
rotWorldMatrix.multiply(object.matrix); // pre-multiply
这是"adds"两个旋转在一起的线。