判断俩线段相交//x0与y0怎么求出来的
求两多边形的交点可以用判定点在多边形内部的方法,如果有一个多边形的一个边的两个顶点中有一个在另一个多边形内或边上,另一个顶点在边上或在外部,则这条边有交点.具体求线段的交点可以用下面的方法求:
已知一条线段的两个端点为A(x1,y1),B(x2,y2),另一条线段的两个端点为C(x3,y3),D(x4,y4),要判断AB与CD是否有交点,若有求出.
首先判断d=(y2-y1)(x4-x3)-(y4-y3)(x2-x1),
若d=0,则直线AB与CD平行或重合,
若d!=0,则直线AB与CD有交点,且交点(x0,y0)为:
x0=[(x2-x1)*(x4-x3)*(y3-y1)+(y2-y1)*(x4-x3)*x1-(y4-y3)*(x2-x1)*x3]/d
y0=[(y2-y1)*(y4-y3)*(x3-x1)+(x2-x1)*(y4-y3)*y1-(x4-x3)*(y2-y1)*y3]/(-d)
求出交点后在判断交点是否在线段上,即判断以下的式子:
(x0-x1)*(x0-x2)