3

我正在使用 Three.js(没有着色器,仅使用现有对象方法)来实现动画,但我的问题很简单:我确定这是可能的,但你能告诉我(或帮助我)我应该怎么做在一个形状上组合几个动画?例如,旋转和平移球体。当我在做:

three.sphere.rotation.y += 0.1;
three.sphere.translateZ += 1;

球体旋转但平移向量也在旋转,因此平移没有效果。我知道一点 openGL 并且我已经使用过 glPushMatrix 和 glPopMatrix 函数,那么它们是否存在于这个框架中?干杯

4

2 回答 2

6

每个 three.js object3D都有一个position,rotationscale; 旋转(总是相对于它的原点或“中心”)定义了它自己的局部轴坐标(例如,对象将其视为自己的“前、上、右”方向),当您调用 时translateZ,对象会根据这些坐标移动局部方向(不是沿世界或父 Z 轴)。如果您想要后者,请three.sphere.position.z += 1改用。

于 2013-03-08T12:27:20.603 回答
1

转换的顺序很重要。先平移后旋转与先旋转后平移会得到不同的结果。当然,对于球体,很难看到旋转。

于 2013-03-08T11:13:23.893 回答