python中不精确的矩形碰撞检测

python中不精确的矩形碰撞检测,python,Python,我有以下代码: def collideRect(r1,r2,r3,r4): """Tests for collisions between two rectangles""" if r1[0]<r4[0] and r2[0]>r3[0] and r1[1]<r4[1] and r2[1]>r3[1]: return True return False 对于使用此函数的应用程序,我需要它具有足够的通用性,以便能够准确计算矩形交点,而

我有以下代码:

def collideRect(r1,r2,r3,r4):
    """Tests for collisions between two rectangles"""
    if r1[0]<r4[0] and r2[0]>r3[0] and r1[1]<r4[1] and r2[1]>r3[1]:
        return True
    return False
对于使用此函数的应用程序,我需要它具有足够的通用性,以便能够准确计算矩形交点,而无需为两个矩形定义相同的角


解决此问题的简单方法是什么?

您可以使用以下功能确保具有左下角和右上角:

def standardize(p1, p2):
    xs, ys = zip(p1, p2)
    return (max(xs), max(ys)), (min(xs), min(ys))

通过使用以下功能,可以确保具有左下角和右上角:

def standardize(p1, p2):
    xs, ys = zip(p1, p2)
    return (max(xs), max(ys)), (min(xs), min(ys))

事实证明,碰撞检测是一个非常重要的问题。更不用说定义对角意味着可以旋转和无效的矩形。事实证明碰撞检测是一个非常重要的问题。更不用说定义对角意味着可以有旋转的和无效的矩形。谢谢,这很好用!我意识到这个问题很简单,也许我应该自己解决,但无论如何谢谢你的帮助!谢谢,效果很好!我意识到这个问题很简单,也许我应该自己解决,但无论如何谢谢你的帮助!