判断是否相交的方法:
1.首先先判断是否平行,平行的话可以用判断两线短所在的向量是否平行或者是判断两线短的斜率是否平行,此时注意斜率为0的情况,可以将除法变为乘法。
图片说明
判断两向量是否平行可以直接用两个向量的叉乘(外积)的模的结果看看是不是为0。
图片说明
2.如果平行,在看是否共线,对于参数方程表示的线段
图片说明
通用格式
P(t) = tA + (1-t)*B,
对于二维三维都适用,若是已知一个点和方向向量,则为
P(t) = A + td

如果共线的话,会出现三个点在一条直线上,所以判断一下(y2-y1)/(x2-x1) == (y3-y1)/(x3-x1)即可,同理为了避免除法溢出,分母为0,还是将其转换为乘法运算。
对于用向量判断是否共线的方法,在后面判断是否相交时,一块判断
3.判断完不共线,则只剩相交,联立方程组进行求解t1和t2即可,若t1、t2都属于[0,1]则相交,否则不相交。
图片说明
因为已经判断过是否平行共线的情况,所以此时分母肯定不为0.
最后带回方程,拿交点。
4.
对于用向量法,可以快速判断,是否相交。
图片说明
若对于在两侧情况
图片说明
就是判断(MQ叉乘MN)和(MN叉乘MP)的点乘结果,即判断两个叉乘结果是否朝向相同,若不相同,即结果小于0,则说明再两侧,此时也判断了是否共线的情况,若共线,则叉乘结果的模为0。
图片说明