从边界矩形和角度获取旋转的矩形坐标

哈里斯

我需要从旋转矩形的边界框和旋转角度中找到旋转矩形的坐标。

下图将说明我需要查找的内容?

在此处输入图片说明

我必须找到要点 P1,P2,P3,P4

在哪里,

R1,R2,R3,R4,angle 给出。

尼科·谢特勒(Nico Schertler)

考虑以下未旋转的矩形:

A -------- B
|          |
D -------- C

有两个选项可以定义边界框。任何一个:

  • 其宽度由A和C定义,高度由B和D定义,或者
  • 其宽度由B和D定义,高度由A和C定义。

边界框的宽度和高度(我们称它们为w_bh_b)可以很容易地根据给定的来计算R

在下文中,我假设矩形的中心位于原点。这使得计算更容易遵循。该中心可随后成立。

给定未旋转矩形的widthw和height h,位置为:

A = (-w/2, -h/2)
B = ( w/2, -h/2)
C = ( w/2,  h/2)
D = (-w/2,  h/2)

A绕原点旋转角度angle,我们得到A'

A'.x = -w/2 * cos angle - h/2 * sin angle
A'.y =  w/2 * sin angle - h/2 * cos angle

可以为其余点计算类似的方程式。在下面的内容中,我将重点介绍边界框定义的第一个选项(第二个选项类似,我留给您自己决定)。

假设边界框的宽度由A定义C,我们得到:

w_b = | C'.x - A'.x |

然后:

w_b = | w * cos angle + h * sin angle |

相似的:

h_b = | w * sin angle + h * cos angle |

w以外的所有变量h都是已知的。因此,您可以求解方程的线性系统以获取它们。然后,使用这些值计算未旋转的点,然后计算旋转的点。

在计算完一个案例的解决方案之后,您需要检查这些假设是否仍然成立。即,如果边界框实际上是由您假设的角定义的。否则,这种情况将无法解决。

请注意,如果angle正弦和余弦相等,则LSE不确定是否为45°。因此,您可以额外自由地选择wh

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章