如何设置物体沿世界x轴旋转90度?

时间:2016-04-11 01:01:06

标签: javascript three.js rotation quaternions

基本上我想将对象沿世界轴的旋转设置为任意角度。我目前正在使用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 = angle),而不是增量它(如在旋转.x + =角度) 。有没有人知道如何调整上述函数(rotateAroundWorldAxis)以允许我设置角度而不是增加角度?

jsfiddle here

1 个答案:

答案 0 :(得分:0)

删除该功能中的第三行

rotWorldMatrix.multiply(object.matrix); // pre-multiply

这是将两个旋转“加”在一起的线。