综合百科

如何求两条直线的交点

通常有两种方法:

1、直线一般式求交点

首先设交点坐标为 (x, y),两线段对应直线的一般式为:

a1x + b1y + c1 = 0

a2x + b2y + c2 = 0

那么对 1 式乘 a2,对 2 式乘 a1 得:

a2*a1x + a2*b1y + a2*c1 = 0

a1*a2x + a1*b2y + a1*c2 = 0

两式相减得:

y = (c1 * a2 - c2 * a1) / (a1 * b2 - a2 * b1)

同样可以推得:

x = (c2 * b1 - c1 * b2) / (a1 * b2 - a2 * b1)

如果(x,y)在两线段上,则(x,y)即为答案,否则交点不存在。

2、直线标准式求交点

首先设交点坐标为(x,y),两线段对应直线的标准式为

A1x + B1y = C1

A2x + B2y = C2

将1式成以B2,将2式乘以B1在相减

A1B2x + B1B2y = B2C1

- A2B1x + B1B2y = B1C2

x = ( B2C1 - B1C2 ) / ( A1B2 - A2B1)

同理可得

y = (A1C2 - A2C1) / ( A1B2 - A2B1)

判断线段是否平行

如果两直线平行,则有 A1/B1 = A2/B2。

为了避免除零的问题,可转化为 A1*B2 = A2*B1。