Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何计算两个二维矩阵变换之间的夹角?_C#_Math_Matrix - Fatal编程技术网

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,你可以测量这两个向量之间的

我有两个2D对象,每个对象都有一个C#中的变换矩阵。
事实上,其中一个来自另一个的旋转。
如何计算这两个矩阵之间的角度?

是否有任何方法可以直接执行此操作?

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

 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 | 
如果你把两个变换矩阵相乘,你会得到另一个形式相同的矩阵。计算角度应该很容易。

矩阵不是旋转的,而是变换,你可以比较矩阵元素,但我认为这不是你要问的