计算器说明
两点距离计算器根据两个点的直角坐标 (x1,y1,z1)、(x2,y2,z2) 求出它们之间的直线距离(欧氏距离)d=Δx2+Δy2+Δz2,并给出线段中点的 x、y 坐标。把两个 z 都填 0,它就是平面上的两点距离。
它适合的问题:地图或图纸上两点相距多远、屏幕上两个像素的间距、机械臂末端两次位置之间的位移、三维模型里两个顶点的边长、数据分析里两个样本「有多像」。凡是能写成坐标的东西,都可以用它量距离。
它不做的事:不算沿道路或网格的路程(那是曼哈顿距离或路径规划),不算地球表面两地的大圆距离(经纬度要用球面公式),不输出 z 中点,也不做单位换算——所有坐标必须用同一个长度单位。
算例
四组算例均由引擎 distance 的 compute 复算;显示口径为最多 8 位小数、去尾零。
算例 1:原点到 (3, 4, 12)
输入:(0,0,0) 与 (3,4,12)。
- Δx=3,Δy=4,Δz=12。
- 平方和 9+16+144=169。
- d=169=13;中点 (1.5,2,6)。
界面显示:距离 13,中点 X 1.5,中点 Y 2。这个例子可以看成两次勾股定理:底面对角线 32+42=5,再与高度 12 组成新的直角三角形,52+122=13。
图 1:三维距离就是长方体的空间对角线,等于对底面对角线再用一次勾股定理
算例 2:平面上的 (1, 2) 与 (4, 6)
输入:(1,2,0) 与 (4,6,0)。
- Δx=3,Δy=4,Δz=0。
- d=9+16=5;中点 ((1+4)/2,(2+6)/2)=(2.5,4)。
界面显示:距离 5,中点 X 2.5,中点 Y 4。对照:沿网格走(先横 3 再竖 4)的曼哈顿距离是 7,直线距离 5 总是不大于它。
算例 3:带负坐标的三维点
输入:(−2,3,1) 与 (4,−1,5)。
- Δx=4−(−2)=6,Δy=−1−3=−4,Δz=5−1=4。
- 平方和 36+16+16=68。
- d=68=217≈8.2462;中点 (1,1,3)。
界面显示:距离 8.24621125,中点 X 1,中点 Y 1。负号在平方后消失——距离只关心坐标差的大小。
算例 4:单位正方形与单位立方体的对角线
输入 (0,0,0) 与 (1,1,0):距离 1.41421356(2)。输入 (0,0,0) 与 (1,1,1):距离 1.73205081(3)。n 维单位立方体的对角线是 n——维度越高,对角线相对边长越长。
算例 1 的输入可以直接填进面板复现;把 z₂ 改成 0,距离变回平面上的 5。
原理与推导
从勾股定理到距离公式
平面上两点 P1(x1,y1)、P2(x2,y2),过 P1 作水平线、过 P2 作竖直线,交于 Q(x2,y1)。P1Q 长 ∣Δx∣,QP2 长 ∣Δy∣,两者垂直,所以 P1P2 是直角三角形的斜边:d2=Δx2+Δy2。这就是勾股定理换了一套语言。
到三维再用一次:先在 z=z1 的水平面内得到底面对角线 Δx2+Δy2,它与竖直方向的 Δz 垂直,于是 d2=(Δx2+Δy2)+Δz2。每增加一个互相垂直的维度,就在根号里多加一项平方——这就是为什么 n 维空间的欧氏距离是 ∑i(Δxi)2,数据科学里两个 100 维特征向量的「距离」用的仍是同一个公式。
中点为什么是平均
沿线段从 P1 走到 P2,坐标从 x1 线性变到 x2;走到一半时每个坐标都恰好在两端的中间,即 (x1+x2)/2。推而广之,线段上按比例 t 的点是 P1+t(P2−P1),t=1/2 给出中点,t=1/3 给出三等分点——这也是比例与线性插值的几何形式。
「距离」应该满足什么
数学上把满足以下四条的函数都叫作距离(度量):非负;两点重合时且仅当重合时为 0;对称(d(P,Q)=d(Q,P));三角不等式(d(P,R)≤d(P,Q)+d(Q,R),绕路不会更近)。欧氏距离满足全部四条,是「直线最短」这一直觉的精确表述。三角不等式解释了算例 2 中为什么曼哈顿距离 7 大于直线距离 5。
欧氏距离之外
- 曼哈顿距离 ∣Δx∣+∣Δy∣:只能沿网格走时的路程(棋盘、城市街区、某些电路布线)。
- 切比雪夫距离 max(∣Δx∣,∣Δy∣):国际象棋里王从一格到另一格的步数。
- 大圆距离:地球表面两地沿球面的最短路径,经纬度要先换算,公式是球面三角的 haversine,本计算器不做。小范围(几十公里以内)把经纬度按比例换成平面米制坐标后可以近似用欧氏距离。
它们和欧氏距离一样都满足度量的四条性质,但给出的数值不同;用哪一种取决于「能怎么走」。
与斜率的关系
Δx、Δy 同时决定了两个量:它们的平方和的平方根是距离,它们的比是斜率。同一个直角三角形,距离读斜边、斜率读两条直角边之比。