判断两个线段\矩形相交

来源:互联网 发布:js中绑定含参数函数 编辑:程序博客网 时间:2024/04/30 13:35

如何判断两个线段\矩形相交?

首先来判断两个线段的情况:假设有两个线段A和B,左右端点分别为A1,A2和B1,B2,分别考虑下面两种情况

1. 线段A在线段B的左边,即A1< B1,那么 A,B不相交的条件是 A1 < B1 && B1 > A2

2. 线段A在线段B的右边,即A1> B1,那么 A,B不相交的条件是 B1 < A1 && A1 > B2

那么将上面两种情况综合起来考虑就是Min(A2,B2) - Max(A1,B1) < 0两条线段不会相交, 感兴趣的可以在纸上画一下就出来这个规律了。高X=Min(A2,B2) - Max(A1,B1) ,如果X>=0,那么X就是相交的区域大小。


将其拓展到二维矩形,只需要再求出另一维的Y值,如果X和Y都大于等于0,说明两个矩形是相交的,面积为X * Y

原创粉丝点击