首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >右手欧拉角XYZ到左撇子欧拉角XYZ

右手欧拉角XYZ到左撇子欧拉角XYZ
EN

Stack Overflow用户
提问于 2015-07-02 18:13:46
回答 1查看 8.2K关注 0票数 4

我相信这是简单的,但没有任何成功的研究,并得到了一个成功的答案。

我把旋转定义为三个欧拉角,按XYZ顺序,右撇子.

我必须转换为一个左撇子系统的欧拉XYZ。我如何调整这些角度,以正确的左手系统?

此外,如果有人有任何样本,所以我可以确保正确的做法,如什么是90 -45 160或90 40 30去。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-03 19:32:51

记数法:

代码语言:javascript
复制
x,y,z - old system basis
x',y',z' - new system basis

Transformation between systems:
x' = x
y' = y
z' = -z

Euler angles:
EulerXYZ = (alfa,beta,gamma)
EulerXYZ' = (alfa',beta',gamma') = ?

现在我想出两种方法来解决这个问题:

图形化

  1. 绘制这两种系统
  2. 使用右手规则在右撇子上标记正旋转。
  3. 用左手规则在左撇子上做正旋转。
  4. 当相应轴上的旋转一致时,则转换为angle' = angle,否则为angle' = -angle

在上面的图片中,#1是右撇子,#2是左手系统(红线总是经过黑线)。

看看这张照片,我们可以得出结论:alfa',beta',gamma' = -alfa,-beta,+gamma

代数法

转换可以用几何代数来计算。它在某种程度上类似于四元数,但旋转发生在“定向平面”,而不是“圆轴”。

有向平面是由两个向量u^v的乘积定义的,具有以下性质:-(u^v) = (-u)^v = u^(-v)

旋转由转子R(angle, plane)R(angle, -plane) = R(-angle, plane)定义。

现在:

代码语言:javascript
复制
R(alfa, y^z) = R(-alfa, -(y^z)) = R(-alfa, y^(-z)) = R(-alfa, y'^z')
R(beta, x^z) = R(-beta, x'^z')
R(gamma, x^y) = R(+gamma, x'^y')

所以

代码语言:javascript
复制
alfa',beta',gamma' = -alfa,-beta,+gamma
票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31191752

复制
相关文章

相似问题

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