如果你有一个菱形的2D模型,由它的四个角定义,并且你想将它转换成另一个菱形的形状,给它4个角,你会怎么做?你能用转换矩阵来做吗?
我的思路是你可以找到两侧的4个向量,||b||/||side_b|| = ||c||/||side_c||, ||a||/||side_a|| = ||b||/||side_b||
,(a,b)
和(b,c)
在p
交叉。
a
-------->-------
| |
b ^ p ^ c
| |
| |
-------->-------
b
但是,我希望以最有效的方式。
答案 0 :(得分:2)
因此菱形可以由2个向量定义;在X轴上缩放,在y轴上缩放。因此,将一个正方形(我们将1x1维度)缩放为菱形的矩阵看起来像这样:(对于粗矩阵而言很抱歉!下划线用于间距)
| X1_1 Y1_1 ___ 0 |
| X1_2 Y1_2 ___ 0 | =矩阵A
| ___ 0 ___0 ___ 1 |
我们希望从这个方面走向一些新的维度,如下所示:
| X2_1 Y2_1 ___ 0 |
| X2_2 Y2_2 ___ 0 | =矩阵B
| ___ 0 ___0 ___ 1 |
我们希望将矩阵A转换为矩阵B.我将命名此转换T.因此:
矩阵A *变换T =矩阵B。
做一些基本的矩阵改组,......
变换T =矩阵B *逆(矩阵A)。
所以只需用你想要的尺寸填充Matrix B,然后用你开始的值填充矩阵A.