如何将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}}
我应该怎么处理这些数字?他们不应该是平等的吗?宇宙对我来说不再有意义。
答案 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获得旋转矩阵,你必须检查翻转并在这种情况下翻转矩阵。