我在屏幕上绘制了两个正方形,如何检测两个对象边缘的碰撞?

我在屏幕上绘制了两个正方形,如何检测两个对象边缘的碰撞?,第1张

我在屏幕上绘制了两个正方形,如何检测两个对象边缘的碰撞?

如果您的正方形无法旋转,这很简单:说

double r
是每个边的长度
Point p1
,一个正方形的中心,另一个正方形的中心
p2
。然后:

if (Math.abs(p1.x - p2.x) < r && Math.abs(p1.y - p2.y) < r) {    // Collision}

更复杂的情况是正方形是否可以旋转。在这种情况下:将对象的每条边视为一条几何线(如果知道角的坐标,则可以轻松地计算每条线的方程式)。

接下来,找到每对线的汇合点(每个汇合点从一个正方形到另一个,彼此相交),并测试该点是否在其中一个正方形内。如果这些比较之一返回true,则发生冲突。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5431070.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存