Math 旋转矩形边框大小

Math 旋转矩形边框大小,math,rotation,2d,trigonometry,Math,Rotation,2d,Trigonometry,如果我有一个给定的矩形,宽度w,高度h和角度r 包含旋转矩形所有点的另一个矩形需要多大 我需要它来为我正在制作的2D物理引擎执行快速边界框检查这可能是您需要的: ,由一个叫马库斯的人回答 这可能是您需要的: ,由一个叫马库斯的人回答 > P>你通常应该考虑碰撞检测引擎中的旋转矩形,因为它会很简单地实现(我是说考虑旋转矩形)。< /P> 在任何情况下,如果您真的想简化以获得粗略的碰撞检测,最好的方法是将矩形嵌入圆中,因为它非常简单(以矩形中心为中心,半径为矩形的半对角线),与使用长方体相比,它可以

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

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


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


,由一个叫马库斯的人回答

这可能是您需要的:


,由一个叫马库斯的人回答

> P>你通常应该考虑碰撞检测引擎中的旋转矩形,因为它会很简单地实现(我是说考虑旋转矩形)。< /P> 在任何情况下,如果您真的想简化以获得粗略的碰撞检测,最好的方法是将矩形嵌入圆中,因为它非常简单(以矩形中心为中心,半径为矩形的半对角线),与使用长方体相比,它可以非常准确地进行粗略检测。实际上,你可以有一个角度阈值来决定是否更好地使用圆圈或考虑原始矩形(大多数退化的情况是当角度接近于代码> k*pi < /代码> k=0,1,2,3


如果你真的想考虑旋转矩形,你可以通过选择矩形的最高顶点<代码>(xt,yt)和最左边<代码>(xl,yl)(在进程旋转之后)来计算它,以获得to>代码>(xl,yt)的toPoFFT点。。然后对右下角执行相同的操作,从矩形的最右边和最低点获取

(xR,yB)
,就得到了它。它将是
(xL,yY)(xR,yB)中包含的矩形

你通常应该考虑碰撞检测引擎中的旋转矩形,因为它会很简单地实现(我是说考虑旋转矩形)。

在任何情况下,如果您真的想简化以获得粗略的碰撞检测级别,最好是将矩形嵌入圆中,因为它非常简单(以矩形中心为中心,半径为矩形的半对角线)与一个盒子相比,它可以非常精确地进行粗检测。实际上,你可以有一个角度阈值来决定是否更好地使用圆圈或者考虑原始矩形(大多数退化的情况是当角度接近<代码> k*pi < /代码> k=0,1,2,3


如果你真的想考虑旋转矩形,你可以通过选择矩形的最高顶点<代码>(xt,yt)和最左边<代码>(xl,yl)(在进程旋转之后)来计算它,以获得to>代码>(xl,yt)的toPoFFT点。

。然后对右下角执行相同的操作,从矩形的最右边和最低点获取
(xR,yB)
,就得到了它。它将是
(xL,yY)(xR,yB)中包含的矩形

我知道一种方法是旋转矩形的所有角点并使用它们,但我认为可能有更好的方法。和@mojuba:If you(或投票支持您的评论的两个人中的任何一个)知道答案如果你也能贴出来那就太好了……我知道有一种方法是旋转矩形的所有角点并使用它们,但我认为可能会有更好的方法。还有@mojuba:如果你(或者投票支持你的评论的两个人中的任何一个)知道答案如果你也能贴出来那就太好了…感谢你的建议!感谢你的建议!我刚刚在Markus的回答中添加了以下评论:事实上,由于对称性,你只需要变换2个角,如果你再多考虑一下,它只需要旋转1个角。我刚刚在Markus的回答中添加了以下注释:实际上,由于对称性,您只需要变换2个角,如果您稍微考虑一下,旋转1个角即可。