将2D旋转矩阵转换为欧拉角

时间:2012-03-22 21:50:20

标签: math

如何将2x2旋转矩阵转换为欧拉角?旋转矩阵是:

{{.46, .89}, {.89, -.46}}

维基百科指示我2D旋转矩阵采用以下形式:

{{cos(a), -sin(a)}, {sin(a), cos(a)}}

知道

{{cos(a), -sin(a)}, {sin(a), cos(a)}} = {{.46, .89}, {.89, -.46}}

我计算了

{{inverseCos(a), -invereSin(a)}, {invereSin(a), inverseCos(a)}}

获取(这些值转换为度数)

{{62.3, -62.3}, {62.3, 117.8}}

我应该怎么处理这些数字?他们不应该是平等的吗?宇宙对我来说不再有意义。

3 个答案:

答案 0 :(得分:4)

你的矩阵不是纯粹的旋转。第一个和最后一个条目是彼此的负数,因此不可能都等于某个角度的余弦。

看起来你实际上还有一个比例矩阵乘以

形式
{{1, 0}, {0, -1}}

修改

来自wikipedia

  

在这种情况下,对角矩阵Σ由M唯一确定(尽管矩阵U和V不是)。

wolfram example中,U和V都有一个{{1,0},{0,-1}}的比例矩阵,当然这些矩阵会取消以保留纯旋转矩阵。我的理解是,这些也是U和V的有效选择,即分解不是唯一的。

答案 1 :(得分:2)

反三角函数返回一个值,但有两个这样的值。

cos(a) = cos(-a) 

sin(a) = sin(PI - a)

当然是弧度。

您应该做的第一件事是使用值的符号来确定您所在的象限。然后您可以计算实际值。

cos为正且窦为负的事实意味着你正在处理第四象限的角度;在3PI / 2(270)和2PI(360)之间。

答案 2 :(得分:1)

  

它来自wolfram提供的奇异价值分解

SVD为您提供了两个正交矩阵(当然还有特征值的对角矩阵)。旋转矩阵不是唯一的正交矩阵。旋转和随后的“翻转”(在一个轴上按-1缩放)也是正交的。如果你想从SVD获得旋转矩阵,你必须检查翻转并在这种情况下翻转矩阵。