两条线段求交点编程

来源:互联网 发布:车载导航电子狗软件 编辑:程序博客网 时间:2024/05/18 02:46

今天需要验证两条线段是否相交,突然发现两点求一条直线不会了,然后我就自己在草稿上求了一番。

已知两个线段分别是(x1,y1)(x2,y2)以及(x3,y3)(x4,y4),假设这两条线段不平行。

设线段所在的直线为ax-by+c=0

a1=y2-y1,b1=x2-x1,c1=b1*y1-a1*x1

a2=y4-y3,b2=x4-x3,c2=b2*y3-a1*x3

d=a1*b2-a2*b1

这两个线段的交点为:((b1*c2-b2*c1)/d,(a1*c2-a2*c1)/d)

若判断两线段是否相交,则交点是否在这两端点之间。