three.js中的旋转方向或左右手约定

3
我注意到当我围绕Z轴旋转模型时,如下所示:
model.rotateZ(rotatedAngle * Math.PI / 180);

看起来它似乎围绕轴逆时针旋转。

  • 这个观察结果准确吗?
  • 有没有相关的文档记录?我找不到,可能是搜索关键词有误。
  • 这个可以配置吗?
  • 最重要的是如何管理旋转的最佳实践是什么?
1个回答

15

Three.js使用右手坐标系,这意味着默认旋转方向是逆时针。请查看此处了解所有旋转规则...

source: https://en.wikipedia.org/wiki/Right-hand_rule

左手系统(顺时针),右手系统(逆时针),因此,添加角度将会逆时针旋转,减少角度则会顺时针旋转。
function rotate(){
    mesh1.rotation.z += 0.01;  // rotates counter clockwise
    mesh2.rotation.z -= 0.01;  // rotates clockwise
}

这里有一个演示的小提琴


2
谢谢!我希望在文档中更容易找到这个。 - JBCP
2
仅作澄清,答案中显示的坐标系不是THREE.js的坐标系。THREE.js的坐标系为y+ = 上,z- = 前,x+ = 右。这在右手坐标系中非常典型。图像中显示的坐标系为z+ = 上,y+ = 前,x+ = 右。 - NateW
1
如果您想要双重检查您的坐标系,我建议使用AxesHelper:https://threejs.org/docs/#api/en/helpers/AxesHelper - NateW

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接