在 2D 中两条隐式直线的相交性检测
计算两条直线的交点。
1 2 3 4 5 6
| bool intersection(float a1, float b1, float c1, float a2, float b2, float c2) { if((a1*b2 - a2*b1) == 0) return false;
return true; }
|
定义:
⎩⎪⎨⎪⎧L1:a1x+b1y+c1=0L2:a2x+b2y+c2=0⇒⎩⎪⎪⎪⎨⎪⎪⎪⎧x=a1b2−a2b1b1c2−b2c1y=a1b2−a2b1a2c1−a1c2
- 唯一解:分母 (a1b2−a2b1) 为非零值。
- 无解:分母为零,两条直线平行。
- 无穷多解:分母为零,两条直线重合。