共线线段求交
设有若干共线线段:[s0,e0][s1,e1]...[sn,en]
其中:si表示线段起点,ei表示线段终点,si,ei都在一条直线上(同一条坐标轴),ei>si
给出判断算法A,算法输入是[s0,e0][s1,e1]...[sn,en],输出是true(没有任何两条线段相交)或者false(有某两条线段相交)
我目前的算法A:
遍历两两线段:[si,ei][sj,ej]
若:[(si+ei)/2-(sj+ej)/2]*[(si+ei)/2-(sj+ej)/2]<=[(ei-si)+(ej-sj)]*[(ei-si)+(ej-sj)]/4
则返回false。
即若两条线段的中点差的平方大于两条线段的长度和一半的平方,则不相交。