SegmentIntersection 线段相交
Last updated
Last updated
对于图,的两端点和分别在所在直线的两边,且的两端点和分别在所在直线的两边,因此和相交。
设和的叉积为,和的叉积为,和的叉积为,和的叉积为。根据Cross中的转向可知,、两个叉积的转向相反,一正一负(表示一个方向与方向向量(平面中的轴)相同,另一个方向相反),、两个叉积的转向相反,一正一负。
对于图,和的叉积转向相反,但和的叉积转向相同,同正同负,因此图2中的两线段不相交。
线段的其中一个端点在线段上,这是一种边界情况,无需考虑的另一个端点的位置,也可以确定、相交。如图所示:
点在线段上的条件为:和两向量方向相同,即两向量的叉积值为;且点的坐标在线段的范围内。
该算法的时间复杂度为。