首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >仅重置一个旋转轴

仅重置一个旋转轴
EN

Stack Overflow用户
提问于 2014-12-02 20:33:26
回答 1查看 717关注 0票数 0

我想找到一个解决方案,将旋转表示为一个矩阵,然后重置它的一个分量。基本上,我希望能够将一个向量乘以这个矩阵,得到一个方向,即绕x轴和z轴旋转,并沿y轴恒定(向上)。我想做物体旋转,得到代表重力的向量,但在物体局部空间,不考虑偏航。所以我想重置偏航。

我不想把它转换成欧拉角。我更喜欢使用四元数,或者直接在旋转矩阵上执行一些操作序列,以避免某些角度可能出现的bug。

好的,我的想法是:

代码语言:javascript
运行
AI代码解释
复制
btTransform t; 
mBody->getMotionState()->getWorldTransform(t); 
btMatrix3x3 trans = t.getBasis().inverse(); 
btVector3 up = (trans * btVector3(0, 1, 0));

我意识到,如果我使用四元数,那么我会得到完全错误的结果(为什么?)现在我在对象空间中得到一个矢量,它表示世界空间中的上方向矢量。但我想旋转这个向量,以便当模型绕Y轴旋转为零时,它表示对象空间中的全局上方向向量。所以我必须以某种方式将这个向量旋转回来。多么?

EN

回答 1

Stack Overflow用户

发布于 2014-12-03 16:39:12

可以对传递的"Y“轴使用四元数摆动扭曲分解。它将四元数分解为绕Y轴旋转和垂直Y轴旋转。

在我的回答中,它在这里被描述。Component of a quaternion rotation around an axis

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

https://stackoverflow.com/questions/27258419

复制
相关文章

相似问题

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