矩形的尺寸,仅给出左上角和右下角坐标,以及旋转角度

时间:2014-04-01 21:45:30

标签: math trigonometry

我有一个已应用旋转的矩形。我知道旋转角度,以及左上角和右下角坐标。

我的问题是,在给出这三条信息的情况下,如何计算矩形的尺寸?

1 个答案:

答案 0 :(得分:0)

如果你的旋转是以矩形的中心点为基础的,首先你必须得到相对于那个原点的TL和BR。

设A,B,C,D为四个顶点TL,TR,BR,BL。

您正在尝试找到TR和BL,它们将是B和D.

B_x = C_x*Cos(a) - A_y*Sin(a)
B_y = C_x*Sin(a) + A_y*Cos(a)

同样地

D_x = A_x*Cos(a) - C_y*Sin(a)
D_y = A_x*Sin(a) + C_y*Cos(a)

想想在轮换之前会发生什么。您只需使用A和C的组件来定义B和D.上面只是将它乘以rotation matrix。其中a是角度。

如果旋转已经应用于A和B,那么在旋转之前得到原始点,这只是rotation matrix的转置:

A'_x = A_x*Cos(a) + A_y*Sin(a)
A'_y = -A_x*Sin(a) + A_y*Cos(a)

同样适用于C

然后使用A'和C'在第一组方程中找到带旋转的结果点。

如果您只对长度和宽度感兴趣,A'和C'就足够了:

width = C'_x - A'_x
Height = A'_y - C'_y