首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用three.js组合旋转和平移

使用three.js组合旋转和平移
EN

Stack Overflow用户
提问于 2013-03-08 19:05:19
回答 2查看 10.5K关注 0票数 3

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

代码语言:javascript
运行
复制
three.sphere.rotation.y += 0.1;
three.sphere.translateZ += 1;

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-08 20:27:21

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

票数 6
EN

Stack Overflow用户

发布于 2013-03-08 19:13:24

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15292504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档