我使用Three.js (没有着色器,只使用现有的对象方法)来实现动画,但我的问题很简单:我确信这是可能的,但你能告诉我(或帮助我)如何在一个形状上组合几个动画吗?例如,旋转和平移球体。当我这样做的时候:
three.sphere.rotation.y += 0.1;
three.sphere.translateZ += 1;
球体旋转,但平移向量也在旋转,因此平移没有效果。我知道一点openGL,并且我已经使用过glPushMatrix和glPopMatrix函数,那么它们存在于这个框架中吗?干杯
发布于 2013-03-08 20:27:21
每个three.js object3D都有一个position
、rotation
和scale
;旋转(始终相对于其原点或“中心”)定义其自己的局部轴坐标(例如,对象视为自己的“前、上、右”方向),当您调用translateZ
时,对象将根据这些局部方向移动(而不是沿着世界-or父Z轴)。如果您想要后者,请改为使用three.sphere.position.z += 1
。
发布于 2013-03-08 19:13:24
转换的顺序很重要。如果先平移,然后旋转,得到的结果与先旋转再平移的结果不同。当然,对于球体,很难看到旋转。
https://stackoverflow.com/questions/15292504
复制相似问题