我有一个2D多边形和一个2D变换矩阵 M ,我用它来变换多边形的顶点。矩阵可以描述......
由于我们处于2D状态,因此转换矩阵的类型为 3x3 。这里以矢量 t 为基础的转换矩阵和按角度 a 的转换:
M_t = |1 0 t2| M_r = | cos(a) sin(a) 0|
|0 1 t1| |-sin(a) cos(a) 0|
|0 0 1 | | 0 0 1|
在我的自定义框架中,我无法访问矩阵值,但可以连续应用其他矩阵:
vertice = ( M_r * M_t ) * vertice
上面的公式将顶点围绕(0,0)旋转角度 a ,然后按矢量 t <进行平移/ strong>即可。我知道矩阵乘法不是可交换的。所以乘法的顺序很重要。
我的问题现在我想获得一个转换矩阵 N ,它反映了一个轮换 R 在应用未知变换矩阵 M 即可。换句话说:我想旋转和平移多边形相对于 M 给出的位置和旋转。
我可以想象这样做的方式,将未知的旋转和翻译作为 M 的一部分:
N = R * M * T
我的问题是: