【笔记】 如何求直线交点(详细揭秘) 计算几何
这是一篇灌水博客。
定义一条射线有一个起始位置 \(\boldsymbol p\) 和一个方向向量 \(\boldsymbol d\),记作 \(<\boldsymbol p,\boldsymbol d>\)
一条直线就可以表示为这条射线所在的直线。
一条线段也可以用这个形式表示。
一个半平面就可以表示为这条有向直线的左侧平面。
那么如何判断两条直线的交点呢?
例题一、给定两直线 \(<\boldsymbol p_1,\boldsymbol d_1>,<\boldsymbol p_2,\boldsymbol d_2>\),求出它们的交点坐标。
一个直观而又显而易见的做法是解直线方程——但这太麻烦了。除过来除过去还要特判分母是不是 \(0\)。
当初向计算几何引入向量就是为了避免这些麻烦的,我们不妨用向量来做。
设两直线分别过 \(AB\),\(CD\),如图所示:
由于交点 \(E\) 在直线 \(CD\) 上,根据高中数学可以知道,\(\vec {OE}=k \vec{OC}+(1-k) \vec{OD}\)。
其中 \(k:1-k=|EC|:|ED|\)。
显然 \(|EC|:|ED|\) 可以看成 \(S_{\triangle ABD}:S_{\triangle ABC}\),于是就做完了。