如何计算两个二维矩阵变换之间的角度?

时间:2013-09-16 07:07:13

标签: c# math matrix

我有两个2D对象,每个对象都有一个C#转换矩阵 事实上,其中一个来自另一个的旋转 如何计算这两个矩阵之间的角度?
有没有什么方法可以直接做到?

2 个答案:

答案 0 :(得分:1)

这取决于矩阵的存储方式,但通常它存储在“基于列”的顺序中,这意味着

 XAxis_x  YAxis_x   Offset_x
 XAxis_y  YAxis_y   Offset_y
 0        0         1

因此,如果您将XAxis视为来自一个矩阵的向量而XAxis来自另一个矩阵,则可以测量这两个向量之间的角度。以相同的方式测量两个矩阵的YAxises之间的角度。因此,最后您将有两个角度:RxRy,它们应用于第一个矩阵,将生成第二个一个。< / p>

答案 1 :(得分:1)

旋转角度θ的任何2D角度变换将如下所示:

    | cos(&theta;)   -sin(&theta;)     0 | 
T = | sin(&theta;)    cos(&theta;)     0 | 
    | 0               0                1 | 

如果你将两个变换矩阵相乘,你会得到另一个相同形式的变形矩阵。计算角度应该很容易。