首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >密码中四元数的手性开关?

密码中四元数的手性开关?
EN

Stack Overflow用户
提问于 2016-08-23 10:05:48
回答 1查看 788关注 0票数 0

我有四元数的数据,我试图从一个右手Y向上的坐标空间切换到一个左撇子的Z向上坐标空间。从阅读到这一点,我需要做的是switch the chirality

我唯一能找到的信息就是

我不能把头绕在这上面。

说我的四元数是:

代码语言:javascript
复制
public static float[] quat= new float[4](0.70711,0.70711,0,0);

在c#码中,如何切换手性?

我尝试过否定轴,只需交换ZY值。我试着把四元数乘以另一个等于90度的四元数,就像那个链接中所建议的那样。还会看到不正确的旋转。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-08-24 23:19:47

假设你原来的坐标系A有X对,Y向上,Z对着相机。新的坐标系B有X对,Y对相机和Z向上。所以基本上你需要交换Y和Z轴。到目前为止?你有一个四元数q,它描述了系统A中的一些旋转,你想要找到一个四元数r,它描述了系统B中相同的旋转。

最好在将角度和轴转换为四元数的上下文中考虑这一点。在维基百科中,您可以读到用单位方向向量(x,y,z)以θ角描述轴的旋转。

Q= cos(θ/2) + sin(θ/2)(xi + yj + zk)

改变坐标系对你的角度和轴有什么作用?嗯,轴坐标和你的点交换的坐标是一样的,角度改变了它的符号。所以你有

cos(−θ/2) + sin(−θ/2)(xi + zj + yk)

与上述相比,真实部分没有变化(因为cos(x)=cos(−x)),而是虚部改变了它们的符号,除了顺序上的变化。由此推广,描述旧坐标系旋转的四元数a + bi + cj + dk将在新坐标系中转化为a - bi - dj - ck

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

https://stackoverflow.com/questions/39098154

复制
相关文章

相似问题

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