C# 如何计算两个二维矩阵变换之间的夹角?
我有两个2D对象,每个对象都有一个C#中的变换矩阵。C# 如何计算两个二维矩阵变换之间的夹角?,c#,math,matrix,C#,Math,Matrix,我有两个2D对象,每个对象都有一个C#中的变换矩阵。 事实上,其中一个来自另一个的旋转。 如何计算这两个矩阵之间的角度? 是否有任何方法可以直接执行此操作?这取决于矩阵的存储方式,但通常以“基于列”的顺序存储,这意味着 XAxis_x YAxis_x Offset_x XAxis_y YAxis_y Offset_y 0 0 1 因此,如果你从一个矩阵中得到像向量一样的XAxis,从另一个矩阵得到像向量一样的XAxis,你可以测量这两个向量之间的
事实上,其中一个来自另一个的旋转。
如何计算这两个矩阵之间的角度?
是否有任何方法可以直接执行此操作?这取决于矩阵的存储方式,但通常以“基于列”的顺序存储,这意味着
XAxis_x YAxis_x Offset_x
XAxis_y YAxis_y Offset_y
0 0 1
因此,如果你从一个矩阵中得到像向量一样的
XAxis
,从另一个矩阵得到像向量一样的XAxis
,你可以测量这两个向量之间的角度。以相同方式测量两个矩阵的Y轴之间的角度后。因此,在最后你将有两个角度:Rx
,Ry
,它应用于第一个矩阵,将生成第二个矩阵。任何通过角度θ旋转的二维角度变换将如下所示:
| cos(θ) -sin(θ) 0 |
T = | sin(θ) cos(θ) 0 |
| 0 0 1 |
如果你把两个变换矩阵相乘,你会得到另一个形式相同的矩阵。计算角度应该很容易。矩阵不是旋转的,而是变换,你可以比较矩阵元素,但我认为这不是你要问的