d = √((x₂ − x₁)² + (y₂ − y₁)²)
平面上兩點 (x₁, y₁) 與 (x₂, y₂) 的距離
變數意義單位
x₁, y₁第一個點的 x、y 座標長度(公尺、像素、任意一致單位)
x₂, y₂第二個點的 x、y 座標同上
d兩點間的直線距離(永遠 ≥ 0)同 x, y

推導:把兩點之間畫出一個直角三角形

平面上隨便取兩個點 P₁(x₁, y₁) 與 P₂(x₂, y₂)。 從 P₁ 畫一條水平線、從 P₂ 畫一條垂直線,這兩條線會在 (x₂, y₁) 交會。 現在出現了一個直角三角形:

水平邊長 = |x₂ − x₁|(兩點 x 座標差的絕對值)
垂直邊長 = |y₂ − y₁|(兩點 y 座標差的絕對值)
斜邊 = P₁ 到 P₂ 的直線距離 d

勾股定理 c² = a² + b²:

d² = (x₂ − x₁)² + (y₂ − y₁)²

兩邊開方(距離永遠非負,取正根):

d = √((x₂ − x₁)² + (y₂ − y₁)²)

注意:差的平方 (x₂−x₁)² 和 (x₁−x₂)² 相等,所以誰減誰沒差,最後都會被平方變正。 也因為這個性質,距離公式自動滿足對稱性 d(P₁, P₂) = d(P₂, P₁) —— 你從 A 走到 B 和從 B 走到 A 一樣遠。

實際應用

1. 螢幕觸控與遊戲 AI:點到底點到了什麼?

手機螢幕上有一顆按鈕在 (200, 500),使用者觸點落在 (215, 510), 距離 d = √(15² + 10²) = √325 ≈ 18 px。 系統會設一個「容差半徑」(通常 44 px 以上符合 Apple HIG 觸控目標標準), 只要 d 小於這個半徑就算「點到了」。這就是按鈕、連結、地圖標記的命中判定背後的數學。

遊戲也一樣:兩個角色距離小於 5 個單位才能近戰攻擊、敵人 AI 偵測範圍 30 公尺、爆炸傷害以距離平方反比衰減 —— 每一個 if 判斷後面都是這條公式。

2. 機器學習的 K 近鄰(KNN)演算法

假設你蒐集了一堆水果的「重量」與「直徑」,標記哪些是蘋果、哪些是橘子。 現在拿到一顆未知水果,量出 (重量, 直徑),要判斷它是蘋果還是橘子。 KNN 的做法:把這顆未知水果看成 (x, y) 平面上的一個點,計算它跟所有已知水果的距離,找出最近的 K 顆(例如 K=5)。 這 5 顆裡如果蘋果多就判蘋果,橘子多就判橘子。 整個演算法的核心就是兩點距離公式 —— 只是 (x, y) 換成 (重量, 直徑) 而已。 推廣到 n 維特徵時,只要把更多項加進根號內:d = √(Σ(xᵢ − yᵢ)²)。

3. 三維距離:把公式推廣到立體空間

空間中兩點 P₁(x₁, y₁, z₁) 與 P₂(x₂, y₂, z₂), 距離公式直接多加一項:

d = √((x₂−x₁)² + (y₂−y₁)² + (z₂−z₁)²)

這就是 3D 遊戲、CAD 軟體、無人機定位用的公式。 連 GPS 算「衛星到接收器距離」時,本質上也是把地心當原點建立 3D 座標系後的歐氏距離。

⚠️ 常見錯誤

(1) 直接套在經緯度上:(經度差)² + (緯度差)² 開根號得到的不是兩城市的距離。 地球是球面,要用Haversine 公式(球面三角學)才正確。 短距離(< 100 km)誤差還能忍,跨洲就會錯到離譜(赤道 1° 經度 ≈ 111 km,但兩極 1° 經度 ≈ 0 km)。
(2) 混淆歐氏距離與曼哈頓距離:城市裡開車不能切對角線,得照街區走, 這時要用 |x₂−x₁| + |y₂−y₁|(曼哈頓距離 / 計程車距離)。 機器學習做特徵相似度時也常用,對極端值更穩健。
(3) 忘記開根號:如果你只是要比較「誰比較近」、不需要實際距離,可以省下開根號的計算(平方後比大小結果一樣),這在效能敏感的程式裡很有用 —— 但別把 d² 拿來當 d 報出去。

動手算算看

下面嵌入 ∑ Calc 的兩點距離計算機。 試試 (0,0) 到 (3,4) ——這就是經典的 3-4-5 勾股數,答案是 5。 或試你家門牌座標到公司大樓座標的直線距離(用 Google Maps 抓 lat/lng 後乘上 111000 約略換算成公尺,短距離可用)。