判断线段相交思想

这个问题是在我那个比赛代码中有同学提出来的,不知道是哪位同学。。。。。也没自报家名。。。。。
现在进入正题:
比如两个线段,AB,CD,坐标分别如下图所示:

在这里介绍一个判断线段相交的方法,使用差积,就是向量的差积,大家都知道,向量差乘的结果仍然是个向量,其方向与差乘的两个向量的前后顺序有关,比如我计算AB(为(x1b-x1a,y1b-y1a))向量与AC(为(x2a-x1a,y2a-y1a))向量的差积,AB向量与AD(为(x2b-x1a,y2b-y1a))向量的差积,计算的这两个结果其向量(记为a向量和b向量)的方向必定相反,且都垂直ABCD所在的平面,那么a向量与b向量的点积一定小于0(不考虑点在线段上的情形)。
另AB向量为(x1,y1)
AC向量为(x2,y2)
AD向量为(x3,y3)
则:
(x1*y2-x2*y1)*(x1*y3-x3*y1)<0
此时,C,D两点必定在AB的延长线的两侧。
同理判断A,B两点在CD的延长线的两侧即可。