首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将表示旋转的四元数从一个坐标系转换到另一个坐标系

将表示旋转的四元数从一个坐标系转换到另一个坐标系
EN

Stack Overflow用户
提问于 2013-09-16 06:25:21
回答 2查看 13.3K关注 0票数 13

我从Y=up,X=right坐标系中的传感器数据中得到一个四元数,Z= backwards.Mine是X=forward,Y=right,Z=up。

所以OX=Y,OY=Z和OZ=-X。

我有一个可以将四元数转换为4x4矩阵的函数,但不知道从哪里开始。任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2018-08-11 07:02:30

假设您有两个坐标系F1和F2。为简单起见,假设两者具有相同的来源。现在让我们,

代码语言:javascript
运行
复制
qo_f1 = orientation of frame F1 as seen from frame F2
qo_f2  = orientation of frame F2 is as seen from F1
q_f1 = some quaternion in F1 frame
q_f2 = q_f1 as seen from F2

然后,

代码语言:javascript
运行
复制
q_f2 = qo_f2 * q_f1 * qo_f2.inverse()

说明

要通过四元数Q旋转任何对象,只需执行q*p*q.inverse()。如果p是一个向量,那么首先将它转换为“伪”四元数,方法是将w=0和x,y,z设置为向量。如果p是四元数,那么你就可以开始了。

票数 8
EN

Stack Overflow用户

发布于 2022-01-17 22:06:02

您只需要将其乘以q,Q是将点从Coord2转换为Coord1等效值的四元数。解释:

代码语言:javascript
运行
复制
q2 * point2 * (q2)^(-1) = (q1 * (q^(-1))) * point2 * (q1 * (q^(-1)))^(-1) 
= q1 * (q^(-1)) * point2 * q * (q1^(-1)) = q1 * ((q^(-1)) * point2 * q) * (q1^(-1))
= q1 * point1_equivalent * (q1^(-1))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18818102

复制
相关文章

相似问题

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