gpt4 book ai didi

java - 旋转矩形碰撞

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:16:28 25 4
gpt4 key购买 nike

找出一个轴对齐的矩形是否与一个旋转的矩形发生碰撞的最有效方法是什么?每个类都有一个位置 vector 和一个大小 vector ,旋转的类有一个角度值。

最佳答案

您想使用分离轴定理 (SAT)。通常它用于 3d,但它很好地折叠到 2d。由于您有一个特殊情况,因此您需要考虑的唯一轴是矩形的 4 个主轴:

[ 1,0 ][ 0,1 ][ sin(theta), cos(theta) ][ -cos(theta), sin(theta) ]

要检查轴,请计算每个顶点与该轴的点积。然后检查 2 组值的最小值和最大值,看它们是否重叠。如果 4 轴中的任何一个给出了不重叠的范围,那么矩形就不会重叠(你已经找到了一个分离轴)。如果所有 4 个轴都显示重叠,则矩形相交。

这是最近关于同一问题的 SO 问题: Separating Axis Theorem and Python

这是维基百科的文章

http://en.wikipedia.org/wiki/Separating_axis_theorem

关于java - 旋转矩形碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6217363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com