【问题标题】:Rotated rectangle bounding box size旋转矩形边界框大小
【发布时间】:2010-10-24 13:15:44
【问题描述】:

如果我有一个给定的矩形,宽度为w,高度为h,角度为r

另一个包含旋转矩形的所有点的矩形需要多大

我需要它来为我正在制作的 2D 物理引擎执行快速边界框检查

【问题讨论】:

标签: math rotation 2d trigonometry


【解决方案1】:

这可能是你需要的:

Calculate Bounding box coordinates from a rotated rectangle,由一个叫 markus 的人回答。

【讨论】:

  • 我刚刚在 Markus 的回答中添加了以下评论:实际上,由于对称性,您只需要转换 2 个角,如果您再考虑一下,它只需旋转 1 个角。
【解决方案2】:

您通常应该考虑在碰撞检测引擎中旋转矩形,因为它的实现非常简单(我的意思是直接考虑旋转的矩形)。

无论如何,如果您真的想简化以获得粗略的碰撞检测,最好的办法是将矩形嵌入一个圆圈内,因为它非常简单(以矩形中心为中心,半径为矩形的对角线),并且与使用框相比,它对于粗略检测可能非常准确。实际上,您可以有一个角度阈值来决定是使用圆形更好还是考虑原始矩形更好(大多数退化情况是角度接近 k*PI 且 k = 0,1,2,3

如果您真的想考虑旋转的矩形,您可以通过选择矩形的最顶部顶点(xT, yT) 和最左侧的(xL, yL)(当然是在旋转之后)来轻松计算它以获得左上角点(xL, yT)。然后你对右下角做同样的事情,从矩形的最右边和最低点取(xR, yB),你就有了。它将是 (xL, yY) (xR, yB) 中包含的矩形。

【讨论】:

  • 感谢您的有用建议!
猜你喜欢
  • 2019-06-23
  • 2012-04-15
  • 2018-12-29
  • 2010-10-11
  • 1970-01-01
  • 2019-06-01
  • 1970-01-01
  • 2019-01-05
  • 2023-01-21
相关资源
最近更新 更多