如何求两条直线的交点
通常有两种方法:
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。