javascript - Three.js - 绕轴旋转 Object3D

标签 javascript rotation three.js

我正在尝试使用 OBJMTLLoader 旋转加载到 Object3D 中的网格。

var obj = new THREE.Object3D();
// loading and stuff

obj.rotation.y += 0.1; //inside the update function

这可以正常工作,但仅适用于 y 和 z 轴。使用相同的代码,但对于 x 轴产生与绕 z 轴旋转相同的结果,但顺时针而不是逆时针。

不幸的是,我需要绕 x 轴旋转它。

var xAxis = new THREE.Vector3(1,0,0);
obj.rotateOnAxis( xAxis, 0.1 );

这会围绕 x 轴旋转对象。

但是,我想补间对象的旋转,所以我需要一种方法来显式更改对象旋转的 Angular ,而不是将其旋转特定的 Angular 。

为什么 obj.rotation.yobj.rotation.z 可以正常工作,但是 obj.rotation.x 不能?

最佳答案

加载网格后(在尝试绕 x 轴旋转之前),我将其绕 y 轴旋转 90 度。由于默认的欧拉顺序(即 XYZ),局部坐标轴不再对应于世界坐标轴。

obj.eulerOrder = 'YXZ';

在围绕 y 轴旋转网格之前使用上面的代码行解决了这个问题。

可以找到对欧拉阶的很好的解释 here .

关于javascript - Three.js - 绕轴旋转 Object3D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29542627/

相关文章:

javascript - 老虎机风格的数字 jquery

javascript - 使用 jQuery datepicker 设置日期格式

javascript - 单击旋转图像,jquery

javascript - 如何使用相机三.js 旋转物体

javascript - 通过正交相机交叉

javascript - jQuery-UI: resizable - 如何增加可拖动边缘的大小?

javascript - jqGrid searchOperator 清除工具栏后显示错误的运算符

c++ - 使用 OpenCV 围绕一个点旋转一个点

ios5 - 如何仅旋转屏幕层次结构中的一个屏幕

javascript - position.set 如何使 Canvas 图像居中?