旋转矩形边框大小

问题描述:

如果我有一个给定的长方形,宽度w,高度h和角度r旋转矩形边框大小

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

我需要这个来执行的2D物理引擎快速边框检查我正在

+0

我知道有一种方法会是旋转矩形的所有角点并使用它们,但我认为可能会有更好的一个。 – Markus 2010-10-24 13:22:34

+0

而@mojuba:如果你(或者任何一个对你的评论满意的人)知道答案,如果你可以发布它,这将是非常好的... – Markus 2010-10-24 13:26:02

+0

可能的重复[Calculate Bounding box coordinates from a rotating rectangle ,图片里面。](http://*.com/questions/622140/calculate-bounding-box-coordinates-from-a-rotated-rectangle-picture-inside) – 2010-10-24 22:05:28

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

在任何情况下,如果你真的想简化到具有粗糙级别的碰撞检测,最好的办法是将矩形嵌入圆内,因为它非常简单(以矩形中心为中心,半径为半矩形的对角线)并且与使用盒子进行比较,对于粗略检测可以是相当准确的。其实你可以有一个角度阈值来决定是否最好使用圆或考虑原始矩形(大多数退化情况是当角度接近k*PI与k = 0,1,2,3

如果你真的真的想要考虑旋转的矩形,你可以通过选择矩形(xT, yT)的最顶点和最左边的(xL, yL)(当然是旋转后)来获得将是(xL, yT)的最小点。然后你对从你矩形的最右边和最低点开始,你需要(xR, yB),它将是包含在(xL, yY) (xR, yB)中的矩形

+0

感谢您的有益建议! – Markus 2010-10-24 13:34:34

这可能是你所需要的:

Calculate Bounding box coordinates from a rotated rectangle,由一个叫马库斯回答。

+0

我刚刚添加了以下评论马库斯的答案:实际上,由于对称性,你只需要转换2个角落,如果你再多加一点思考,它只是一个转角。 – ysap 2010-10-25 12:18:55