如果我有一个给定的矩形,宽度为w
,高度h
和角度r
包含旋转矩形的所有点的另一个矩形需要多大?
我需要这个来为我正在制作的2D物理引擎执行快速边界框检查
答案 0 :(得分:1)
这可能是您所需要的:
Calculate Bounding box coordinates from a rotated rectangle,由名为markus的人回答。
答案 1 :(得分:0)
你通常应该考虑在碰撞检测引擎中旋转矩形,因为它实现起来非常简单(我的意思是考虑旋转的矩形)。
在任何情况下,如果你真的想简化以进行粗略的碰撞检测,最好的办法是将矩形嵌入圆圈内,因为它非常简单(以矩形中心为中心,半径为半圆形)矩形的对角线)与使用盒子相比,粗略检测可以非常准确。实际上你可以有一个角度阈值来决定使用圆圈或考虑原始矩形是否更好(大多数退化情况是当角度接近k*PI
时k = 0,1,2,3
如果你真的想要考虑旋转的矩形,可以通过选择矩形(xT, yT)
的最顶端和最左边的(xL, yL)
(当然旋转之后)来轻松计算它,以获得topleft该点将是(xL, yT)
。然后,对于从矩形的最右边和最低点获取(xR, yB)
的直角,你也会做同样的事情。它将是(xL, yY) (xR, yB)
中包含的矩形。