如何精确检测两个矩形间是否存在交叉点?
- 内容介绍
- 文章标签
- 相关推荐
本文共计280个文字,预计阅读时间需要2分钟。
若我有两个矩形,其位置分别使用两个2D向量(即左上角和右下角),我如何检查它们相交的点?假设我实际想要得到的是相交的交点坐标,而不仅仅是测试两个矩形是否相交。设矩形rect1为(l1, t1, r1, b1),则相交点坐标为(max(l1, l2), min(t1, t2), min(r1, r2), max(b1, b2)),其中rect2的坐标为(l2, t2, r2, b2)。
如果我有两个矩形,其位置使用两个2D矢量(即左上角,右下角)进行确定,我如何检查它们相交的点? 我假设您实际上想要交叉的结果,而不仅仅是测试两个矩形是否相交.rect1 =(l1,t1,r1,b1)和rect2 =(l2,t2,r2,b2)的交集也是一个矩形:
rectIntersection = ( max(l1, l2), max(t1, t2), min(r1, r2), min(b1, b2) )
如果保持> = right ||,rectIntersection当然是空的top> = bottom假设一个矩形是左/上包含和右/下 – 独占.
如果矩形相交
l1 < r2 && l2<r1 && t1<b2 && t2<t1
本文共计280个文字,预计阅读时间需要2分钟。
若我有两个矩形,其位置分别使用两个2D向量(即左上角和右下角),我如何检查它们相交的点?假设我实际想要得到的是相交的交点坐标,而不仅仅是测试两个矩形是否相交。设矩形rect1为(l1, t1, r1, b1),则相交点坐标为(max(l1, l2), min(t1, t2), min(r1, r2), max(b1, b2)),其中rect2的坐标为(l2, t2, r2, b2)。
如果我有两个矩形,其位置使用两个2D矢量(即左上角,右下角)进行确定,我如何检查它们相交的点? 我假设您实际上想要交叉的结果,而不仅仅是测试两个矩形是否相交.rect1 =(l1,t1,r1,b1)和rect2 =(l2,t2,r2,b2)的交集也是一个矩形:
rectIntersection = ( max(l1, l2), max(t1, t2), min(r1, r2), min(b1, b2) )
如果保持> = right ||,rectIntersection当然是空的top> = bottom假设一个矩形是左/上包含和右/下 – 独占.
如果矩形相交
l1 < r2 && l2<r1 && t1<b2 && t2<t1

