首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Three.js增加局部对象旋转

Three.js增加局部对象旋转
EN

Stack Overflow用户
提问于 2016-08-01 20:50:48
回答 2查看 506关注 0票数 1

我的目标是让一个对象像宇宙飞船一样控制,我所理解的是我需要使用四元数来实现这个目标。开始时,我试着让我的立方体在我按下A键时开始向左旋转,这是代码:

代码语言:javascript
复制
if(controls.pressingA === true)
{
    //var pLocal = new THREE.Vector3( 0, 0, -1 );
    //var pWorld = pLocal.applyMatrix4( me.matrixWorld );
    //var dir = pWorld.sub( me.position ).normalize();
    var dir = me.getWorldDirection();
    var quaternion = new THREE.Quaternion().setFromAxisAngle( dir, 0.05 );
    me.rotation.setFromQuaternion( quaternion );
}

当我理解这段代码时,me.getWorldDirection()获取对象所面对的轴,然后我在之前获得的轴上创建四元数,并将给定对象在rad中旋转0.05度,最后用最后一行代码将四元数应用于我的对象。我得到的问题是,它没有增加旋转,它只是将我的对象设置为给定的旋转,我如何才能使它增加旋转而不是设置它?

EN

回答 2

Stack Overflow用户

发布于 2016-08-02 20:27:05

为什么不使用其中一个或组合:

代码语言:javascript
复制
mesh.rotation.x += 0.05;
mesh.rotation.y += 0.05;
mesh.rotation.z += 0.05;

JSFiddle

票数 0
EN

Stack Overflow用户

发布于 2021-01-21 22:34:05

如果要设置所有这些参数,则可以执行以下操作

代码语言:javascript
复制
mesh.rotation.set(9, 7, 3)

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

https://stackoverflow.com/questions/38699395

复制
相关文章

相似问题

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