实际上直线的距离,跟那些严谨的教科书彻底不一样。
你想想,那会儿高中数学书里总爱讲“向量法”,那个思路是不是有点死板?就是先扯出坐标,再搞点叉积点积的运算,最终把结局塞进个根号公式里。
对,就是那个 $d = frac{|Ax_0 + By_0 + C|}{sqrt{A^2 + B^2}}$ 玩意儿。但说实话,这玩意儿看着冷冰冰,用起来却像是个庞大的迷宫,特别是当你面对两条不平行的直线时,往往好办晕头转向。 我们得换个脑子,把这两条线变成能直接对话的两个人。想象一下,你手里拿着一把尺子,要量两条线之间的空隙。
要是这两条线是平行的,那就好办了,那就是它们各自垂直于那条公切线的距离之和,要么说是两条平行线向外延伸,直到撞到一起。
这时候,你只需求关切它们有多么“近”,要么说,垂直距离是多少。 那要是它们不平行呢?这就有点意思了。
这时候,你得先凑出一组特殊的点到线,让这两条线都跟你的那条“公切线”保持垂直,然后看它们在这条公切线上分别多远了。
这听起来挺绕,但实际上逻辑挺好办。 举个例子,假设我们要算直线 $l_1: 2x - 3y + 6 = 0$ 和 $l_2: 3x - 4y + 5 = 0$ 之间的距离。
这两条线斜率明显不一样,$l_1$ 斜率是 $2/3$,$l_2$ 斜率是 $3/4$。
如何办呢?我们要找一条线,让它既垂直于 $l_1$ 又垂直于 $l_2$。垂直于 $l_1$ 的斜率得是 $-3/2$,垂直于 $l_2$ 的斜率得是 $-4/3$。它们如何组合能垂直呢? 这时候我们得利用一下几何里的先天知识:两条直线垂直,那它们的斜率乘积就得是 $-1$。设 $l_1$ 的法向量是 $vec{n_1}$,$l_2$ 的法向量是 $vec{n_2}$,那它们的叉积 $vec{n_1} times vec{n_2}$ 拿到的向量 $vec{n}$,方向就一定是垂直于这两条线的,也就是这就是我们要找的“公切线”的垂线方向。具体的话,$l_1$ 的法向量能够取 $vec{n_1} = (2, -3)$,$l_2$ 的 $vec{n_2} = (3, -4)$。算一下叉积,这个结局会是一个向量 $(12, -12)$,要么是归一化后的 $(1, 1)$ 方向。
这说明,甭管这两条线如何斜,只要它们不平行,它们之间总有一条线,这条线是垂直于它们且平行于“公切线”的。 故此,计算距离的核心,就变成求这一条“公切线”上某一点到两条线的垂直距离了。我们得在公切线方向上找一点 $P_0$。
如何找?这就回到了刚刚那个例子,既然法向量方向是 $(1, 1)$,那我们能够设点 $P_0$ 的坐标知足 $x = t, y = t + k$,$k$ 是我们要确定的常数。 然后,我们把这个点 $P_0$ 分别代回 $l_1$ 和 $l_2$ 的方程里,算出对应的 $t$ 值。
比如代入 $l_1$:$2t - 3(t + k) + 6 = 0$,解出来 $t = -3k + 6$。代入 $l_2$:$3t - 4(t + k) + 5 = 0$,解出来 $t = 1 - 3k$。
这里有个小差别,$t$ 的值不一样,就是出于 $k$ 这个“偏移量”不同。 目前就是最精彩的一步了。
既然我们知道了 $l_1$ 上对应的点是 $A(-3k + 6, -3k + 4)$,而 $l_2$ 上对应的点是 $B(1 - 3k, -3k + 4)$。
这两个点 $A$ 和 $B$ 就在同一条垂直于 $l_1$ 和 $l_2$ 的公切线上。
那么,$l_1$ 到 $l_2$ 的距离,实际上就是线段 $AB$ 的长度。 我们来算算 $AB$ 的长度。$x$ 坐标差是 $(1 - 3k) - (-3k + 6) = -5$,是个定值!$y$ 坐标差也是 $(-3k + 4) - (-3k + 4) = 0$,说明这段距离一直平行于 $y$ 轴方向。
哇,这忒巧了。出于 $l_1$ 和 $l_2$ 的系数里,$x$ 和 $y$ 的系数比例关系有时候会害得这种巧合。 既然距离就是 $AB$ 的长度,那用两点间距离公式:$sqrt{(x_2-x_1)^2 + (y_2-y_1)^2}$。代入数值,$sqrt{(-5)^2 + 0} = 5$。 你看,就是如此好办。
这个例子里,别看设了个参数 $k$,但在计算 $AB$ 长度时,$k$ 消掉了,结局是一个常数 5。
这说明啥?说明对于任意两条不平行且不重合的直线,它们之间的垂直距离是一个固定的数,跟它们如何移动、如何旋转无涉。就像平行线间距离一样,只要不平行,距离就是恒定的。 不过,这有个前提,就是务必找出一条“公切线”。
要是两条直线平行,那它们就不存有唯一的这条垂直于它们的直线了(要么说这条直线有无数条,它们重合了)。
这时候就得用公式了,那就是两条平行线间距离的公式,一路走到底。 再看看那个公式本身,分母里的 $sqrt{A^2 + B^2}$ 实际上代表的是直线的“宽度”,也就是法向量的长度归一化。分子里的 $|Ax_0 + By_0 + C|$ 就是点到直线的距离,这里 $A, B, C$ 直接取自方程系数。你会发现,这个公式实际上是在做减法:先把直线上的“单位点”算出来,再减去某个基准点,再乘以归一化的法向量长度。 有时候,你会发现计算起来挺费事。
比方说,要是两条线都是倾斜挺了得的,比如 $y = x^2$ 这种曲线,那我们就没法用解析几何的直线公式了。但要是是直线,哪怕系数特别大,比如 $100x + 1000y = 500$,最终开根号的时候,那些 100 和 1000 会消掉,结局依然是干净利落的数字。 再想想生活中的例子。
比如地铁站台的两条边缘轨道,要么工厂里输送管道之间的间距。
有时候你会看到图纸上标注了具体的毫米数,这就是 $d$ 值。
有时候你只需求知道它们“差不多”,不需求精确到小数点,那也是能够的。数学这东西,忒精确了反而让人钻牛角尖,有时候大约的数量级,要么一个整数,最接近实际意义。 最终总结一下,求两条直线距离,实际上就是在找一条“公切线”,然后量量这条公切线两端点到另外两条线的“垂直步距”。
这个步距算出来就是距离。
哪怕直线斜率挺大,坐标数字挺长,只要把它们归一化,最终剩下的往往就是让人惊喜的整数。
这听起来是不是有点忒好办了?实际上不然,出于它隐藏着想求公切线的过程。一旦有了公切线,计算就顺理成章了。
这就是数学的魅力,有时候,把难题拆解成“找方向”和“算步长”两步,难题就迎刃而解了。