Matlab 如何在矩形坐标上应用变换

Matlab 如何在矩形坐标上应用变换,matlab,transform,transformation,matlab-guide,Matlab,Transform,Transformation,Matlab Guide,我在代码中检测到一个对象,并在其周围绘制一个矩形。我有四个变量来绘制矩形:X、Y、宽度和高度。我找到了一个需要应用于矩形的变换矩阵。返回的转换矩阵是一个3*3矩阵,如下所示: Tinv = 1.0022 0.0018 0 -0.0018 1.0022 0 -0.4353 -0.9079 1.0000 如何使用此矩阵对矩形应用变换?您应该做的是计算矩形的所有四个顶点,然后对每个顶点应用变换。这应该很容易;如果我明白了你

我在代码中检测到一个对象,并在其周围绘制一个矩形。我有四个变量来绘制矩形:X、Y、宽度和高度。我找到了一个需要应用于矩形的变换矩阵。返回的转换矩阵是一个3*3矩阵,如下所示:

Tinv =

    1.0022    0.0018        0

   -0.0018    1.0022         0

   -0.4353   -0.9079    1.0000

如何使用此矩阵对矩形应用变换?

您应该做的是计算矩形的所有四个顶点,然后对每个顶点应用变换。这应该很容易;如果我明白了你想做的事,那么你可以用下面的话来表达:

X = 1;
Y = 2.34;
W = 3.21;
H = 2;
顶点现在可以是(假设
(X,Y)
表示矩形的左上顶点,其底部为0弧度:

(x1,y1) = (1,2.34)
(x2,y2) = (4.21,2.34)
(x3,y3) = (4.21,0.34)
(x4,y4) = (1,0.34)
这现在可以表示为:

[
1.00    2.34    0.00
4.21    2.34    0.00
4.21    0.34    0.00
1.00    0.34    1.00
]
现在可以根据需要通过简单的矩阵乘法进行转换