請選擇要求的點的種類和維度,再輸入兩點 A、B 的坐標和比 m:n。下方的數學式和輸入欄是連動的,直接改寫式中的坐標或比也能計算。
這個頁面可以做什麼
- 只要輸入兩點 \(\mathrm{A}\)、\(\mathrm{B}\) 的坐標和比 \(m:n\),就能當場算出把線段 \(\mathrm{AB}\) 分成 \(m:n\) 的點(內分點、外分點)的坐標
- 中點(\(1:1\) 的內分點)和三角形的重心(三個頂點坐標的平均)也能在同一頁計算
- 數線(一維)、坐標平面(二維)、空間(三維)都能使用
- 答案會同時以 \(\dfrac{13}{2}\) 這樣約分後的分數(精確值)和小數顯示,也能看到把數值代入公式的計算過程
- 可以從圖上確認求出的點在線段的哪裡(在內側,或在哪一側的外面)。坐標和比除了小數、負數,也能輸入像 3/4 這樣的分數
- 內分點公式中 \(m\) 和 \(n\) 看起來「交叉」對調的原因解說,以及可直接複製到 Excel、Google 試算表、Python 的公式,也都整理在這個頁面
這個計算有什麼用?
把角色或鏡頭從 A 點移動到 B 點時,電腦每一格畫面都會計算「把線段 AB 分成 \(t : \left(1-t\right)\) 的內分點」(\(t\) 是 \(0\) 到 \(1\) 之間的數)來決定位置。這叫做線性內插(lerp),是電腦繪圖最基本的計算。
讓 t 從 0 慢慢增加到 1,物體就會以固定速度從 A 移到 B;改變 t 增加的快慢,就能做出慢慢起步、慢慢停下的自然動作。顏色漸層、圖片縮放、兩張臉的變形,也都是對顏色或坐標套用相同的內分點計算。
在長 1 m 的棒子(棒子本身的重量可以忽略)兩端掛上 1 kg 和 2 kg 的砝碼,支點要放在哪裡才會平衡?這正是內分點的計算。答案是距離 1 kg 那一端 \(\dfrac{2}{3}\) m 的位置:重心是以重量為權重的平均,會往重的那一端靠近。寫成式子,位置 \(x_1\) 有質量 \(m_1\)、位置 \(x_2\) 有質量 \(m_2\) 時,重心是 \(\dfrac{m_1 x_1 + m_2 x_2}{m_1 + m_2}\),和內分點公式的形式相同。
這裡因為質量本身就是權重,看起來不像「較輕那一端的坐標乘上較重的質量」。而處理長度比的內分點,權重是「另一側那一段的長度」。三角形、板子、汽車和飛機的重心,也都是用同樣的想法求出來的。
40 人的班級平均 60 分、20 人的班級平均 90 分時,兩班合起來的平均不是 75 分,而是 \(\dfrac{40 \times 60 + 20 \times 90}{40 + 20} = 70\) 分。把 60 和 90 看成數線上的兩點 \(\mathrm{A}\)、\(\mathrm{B}\),答案就是把線段 \(\mathrm{AB}\) 分成 \(20:40\) 的內分點,也就是人數比 \(40:20\) 對調後的比。答案會往人數較多的 60 那一側靠近,因為另一側的人數就是權重。這和本頁的「交叉」對調完全相同。
物價指數、打擊率、問卷的綜合評分、投資的平均成本等,合併不同規模群體的平均,全都是這種形式。這能避免「直接相加除以 2」、讓人數少的群體影響過大的錯誤。
道路或整地工程會根據測量出的兩點坐標,計算「兩點之間指定比例的位置」並打樁。把 100 m 的區間 4 等分的位置(25 m、50 m、75 m),就是比為 1:3、1:1、3:1 的內分點。
用含高度的三維坐標,同一個公式也能求出斜坡途中的點。即使是從兩端開挖、必須在正中間準確會合的隧道,也是靠許多這樣的坐標計算確保施工精確。
把兩地的緯度、經度看成坐標,用中點公式就能求出「大約正中間的地點」。建議會合地點的功能,以及把長距離路線等距分段、查看沿途海拔和天氣時,都會用到。
範圍很大時,需要考慮地球是球面的計算;但在同一個城市內,把坐標當成平面用內分點計算,實際上幾乎沒有差別。
公式與圖示
符號與用語解說
符號
| \(\mathrm{A},\ \mathrm{B},\ \mathrm{C}\) | A、B、C | 點的名稱。在幾何中,點習慣用大寫英文字母表示,依序取 A、B、C。本頁中線段的兩端是 \(\mathrm{A}\)、\(\mathrm{B}\),三角形的第 3 個頂點是 \(\mathrm{C}\)。 |
| \(x_1,\ y_1\) | x 1、y 1 | 點 \(\mathrm{A}\) 的坐標。右下角的小數字(下標)是表示「第幾個點」的編號,不是用來計算的數。同樣地,\(x_2,\ y_2\) 是點 \(\mathrm{B}\) 的坐標,\(x_3,\ y_3\) 是點 \(\mathrm{C}\) 的坐標。 |
| \(m:n\) | m 比 n | 分割線段的比。從 \(\mathrm{A}\) 到分點的部分分配 \(m\),從分點到 \(\mathrm{B}\) 的部分分配 \(n\)。\(m\)、\(n\) 只是常用來表示比的字母。順序對調會變成另一個點。 |
| \(\mathrm{P}\) | P | 常用來稱呼內分點的名稱,取自英文「點」Point 的字首。 |
| \(\mathrm{Q}\) | Q | 常用來稱呼外分點的名稱。習慣上用內分點 \(\mathrm{P}\) 的下一個字母。 |
| \(\mathrm{M}\) | M | 常用來稱呼中點的名稱,取自英文「中點」Midpoint 的字首。 |
| \(\mathrm{G}\) | G | 常用來稱呼重心的名稱,據說來自英文 center of Gravity(重量的中心)的 G。 |
| \(\mathrm{AB}\) | 線段 AB | 連接點 \(\mathrm{A}\) 和點 \(\mathrm{B}\) 的線段,指兩端固定的「直線的一部分」。本頁中表示長度時也寫成 \(\mathrm{AB}\)(課本也寫作 \(\overline{\mathrm{AB}}\))。 |
| \(\mathrm{AP} : \mathrm{PB}\) | AP 比 PB | 線段 \(\mathrm{AP}\) 的長度與線段 \(\mathrm{PB}\) 的長度的比。「使 \(\mathrm{AP} : \mathrm{PB} = m : n\) 的點 \(\mathrm{P}\)」,就是把線段 \(\mathrm{AB}\) 分成 \(m:n\) 的內分點。 |
用語
| 線段 | 連接兩點的直線的一部分。有兩個端點的叫線段,往一側無限延伸的叫射線,往兩側無限延伸的叫直線。 |
| 內分點 | 在線段內側、把線段分成指定比的點。把線段 \(\mathrm{AB}\) 分成 \(m:n\) 的內分點 \(\mathrm{P}\),就是線段 \(\mathrm{AB}\) 上滿足 \(\mathrm{AP} : \mathrm{PB} = m : n\) 的點。 |
| 外分點 | 在線段延長線的外側、滿足 \(\mathrm{AQ} : \mathrm{QB} = m : n\) 的點。它會落在比的數較小的那一端那一側(\(m > n\) 時在 \(\mathrm{B}\) 的前方,\(m < n\) 時在 \(\mathrm{A}\) 的後方)。\(m\) 和 \(n\) 相等時不存在。 |
| 分點 | 把線段分成指定比的點的總稱,用來合稱內分點和外分點。 |
| 中點 | 線段正中間的點,與兩端距離相等,相當於 \(1:1\) 的內分點。 |
| 重心 | 三角形三條中線的交點。用這一點撐住三角形的板子會保持水平平衡,是「重量的中心」,坐標是三個頂點坐標的平均。 |
| 中線 | 連接三角形頂點與對邊中點的線段。三條中線一定交於一點(重心),這一點把每條中線從頂點算起分成 \(2:1\)。 |
| 比 | 把兩個量的關係像「\(2:1\)」這樣並列表示。\(2:1\) 和 \(4:2\) 是相同的比(比值相等)。本頁中,表示線段分割後兩部分長度的關係。 |
| 坐標 | 用一組數表示點的位置。在數線上是 1 個數,在平面上是 \((x,\ y)\) 2 個數,在空間中是 \((x,\ y,\ z)\) 3 個數,就能決定一個點的位置。 |
| 數線 | 在直線上標上刻度,讓數與點一一對應。用 1 個數就能表示位置,是最簡單的坐標。 |
| 坐標平面 | 把水平的 \(x\) 軸和垂直的 \(y\) 軸組合起來,讓平面上的點可以用 \((x,\ y)\) 兩個數表示。 |
| 加權平均 | 給每個數加上「權重」後求的平均。內分點的坐標 \(\dfrac{n x_1 + m x_2}{m+n}\),正是給 \(x_1\) 權重 \(n\)、給 \(x_2\) 權重 \(m\) 的加權平均。一般的平均,就是所有權重都相等的特例。 |
| 下標 | 像 \(x_1\)、\(x_2\) 這樣寫在字母右下角的小編號,是用來區分同類量的「流水號」,不是相乘的數,也不是指數。 |
建議先了解的基礎知識
為了讓您「理解意義」地使用本頁的計算,這裡整理了事先了解會更好懂的基礎知識。
遇到卡關時,回頭複習這些內容是最快的捷徑。
| 數線與坐標(國小五年級~國中七年級,10~13 歲) |
|
| 比與比例(國小六年級~國中七年級,11~13 歲) |
|
| 正負數的計算(國中七年級,12~13 歲) |
|
| 分數的計算(國小五年級~國中七年級,10~13 歲) |
|
| 代數式與代入(國中七年級~八年級,12~14 歲) |
|
| 平均(國小五年級,10~11 歲) |
|
用 Excel 計算的方法
| 點 A 的 x 坐標 x1 | 1 |
| 點 A 的 y 坐標 y1 | 2 |
| 點 B 的 x 坐標 x2 | 7 |
| 點 B 的 y 坐標 y2 | 5 |
| 比的前項 m(A 到分點) | 2 |
| 比的後項 n(分點到 B) | 1 |
| 內分點 P 的 x 坐標 | =(B6*B1+B5*B3)/(B5+B6) |
| 內分點 P 的 y 坐標 | =(B6*B2+B5*B4)/(B5+B6) |
| 點 A 的 x 坐標 x1 | 1 |
| 點 A 的 y 坐標 y1 | 2 |
| 點 B 的 x 坐標 x2 | 7 |
| 點 B 的 y 坐標 y2 | 5 |
| 比的前項 m(A 到分點) | 3 |
| 比的後項 n(分點到 B) | 1 |
| 外分點 Q 的 x 坐標 | =(-B6*B1+B5*B3)/(B5-B6) |
| 外分點 Q 的 y 坐標 | =(-B6*B2+B5*B4)/(B5-B6) |
| 點 A 的 x 坐標 x1 | 1 |
| 點 A 的 y 坐標 y1 | 2 |
| 點 B 的 x 坐標 x2 | 7 |
| 點 B 的 y 坐標 y2 | 5 |
| 中點 M 的 x 坐標 | =(B1+B3)/2 |
| 中點 M 的 y 坐標 | =(B2+B4)/2 |
| 頂點 A 的 x 坐標 x1 | 1 |
| 頂點 A 的 y 坐標 y1 | 2 |
| 頂點 B 的 x 坐標 x2 | 7 |
| 頂點 B 的 y 坐標 y2 | 5 |
| 頂點 C 的 x 坐標 x3 | 4 |
| 頂點 C 的 y 坐標 y3 | 8 |
| 重心 G 的 x 坐標 | =(B1+B3+B5)/3 |
| 重心 G 的 y 坐標 | =(B2+B4+B6)/3 |
第一個表格把 A(1, 2)、B(7, 5) 分成 2:1,得到內分點 P(5, 4)。x 坐標的公式「= (B6*B1+B5*B3)/(B5+B6)」是 B1(A 的 x 坐標)乘以 B6(比的後項 n)、B3(B 的 x 坐標)乘以 B5(比的前項 m),乍看好像配錯了。這就是「交叉」對調,換過來答案就會改變。
第二個表格把同樣的兩點外分成 3:1,得到外分點 Q(10, 6.5)。和第一個表格的差別,只有 B6 前面的負號,以及分母的加法變成減法。m 和 n 輸入相同的值時,分母會變成 0,出現錯誤(#DIV/0!),表示外分點不存在。
第三個表格得到中點 M(4, 3.5)。第四個表格得到以 A(1, 2)、B(7, 5)、C(4, 8) 為頂點的三角形的重心 G(4, 5)。
用 Google 試算表計算的方法
| 點 A 的 x 坐標 x1 | 1 |
| 點 A 的 y 坐標 y1 | 2 |
| 點 B 的 x 坐標 x2 | 7 |
| 點 B 的 y 坐標 y2 | 5 |
| 比的前項 m(A 到分點) | 2 |
| 比的後項 n(分點到 B) | 1 |
| 內分點 P 的 x 坐標 | =(B6*B1+B5*B3)/(B5+B6) |
| 內分點 P 的 y 坐標 | =(B6*B2+B5*B4)/(B5+B6) |
| 點 A 的 x 坐標 x1 | 1 |
| 點 A 的 y 坐標 y1 | 2 |
| 點 B 的 x 坐標 x2 | 7 |
| 點 B 的 y 坐標 y2 | 5 |
| 比的前項 m(A 到分點) | 3 |
| 比的後項 n(分點到 B) | 1 |
| 外分點 Q 的 x 坐標 | =(-B6*B1+B5*B3)/(B5-B6) |
| 外分點 Q 的 y 坐標 | =(-B6*B2+B5*B4)/(B5-B6) |
| 點 A 的 x 坐標 x1 | 1 |
| 點 A 的 y 坐標 y1 | 2 |
| 點 B 的 x 坐標 x2 | 7 |
| 點 B 的 y 坐標 y2 | 5 |
| 中點 M 的 x 坐標 | =(B1+B3)/2 |
| 中點 M 的 y 坐標 | =(B2+B4)/2 |
| 頂點 A 的 x 坐標 x1 | 1 |
| 頂點 A 的 y 坐標 y1 | 2 |
| 頂點 B 的 x 坐標 x2 | 7 |
| 頂點 B 的 y 坐標 y2 | 5 |
| 頂點 C 的 x 坐標 x3 | 4 |
| 頂點 C 的 y 坐標 y3 | 8 |
| 重心 G 的 x 坐標 | =(B1+B3+B5)/3 |
| 重心 G 的 y 坐標 | =(B2+B4+B6)/3 |
用 Python 計算的方法
from fractions import Fraction
# 各點的坐標(像 3/4 這樣的分數可以寫成 Fraction(3, 4))
point_a = (Fraction(1), Fraction(2))
point_b = (Fraction(7), Fraction(5))
point_c = (Fraction(4), Fraction(8)) # 第 3 個頂點,求重心時使用
def internal_point(a, b, m, n):
# 內分點:乘上對面那一側的數(點 A 乘 n,點 B 乘 m)
return tuple((n * p + m * q) / (m + n) for p, q in zip(a, b))
def external_point(a, b, m, n):
# 外分點:把內分點的 n 換成 -n(m 和 n 相等時無法計算)
return tuple((-n * p + m * q) / (m - n) for p, q in zip(a, b))
def midpoint(a, b):
# 中點:兩個坐標的平均(1:1 的內分點)
return tuple((p + q) / 2 for p, q in zip(a, b))
def centroid(a, b, c):
# 三角形的重心:三個頂點坐標的平均
return tuple((p + q + r) / 3 for p, q, r in zip(a, b, c))
def show(point):
# 把分數顯示成「(5, 4)」「(10, 13/2)」這種好讀的形式
return "(" + ", ".join(str(v) for v in point) + ")"
print("內分點 2:1:", show(internal_point(point_a, point_b, Fraction(2), Fraction(1))))
print("外分點 3:1:", show(external_point(point_a, point_b, Fraction(3), Fraction(1))))
print("中點 :", show(midpoint(point_a, point_b)))
print("重心 :", show(centroid(point_a, point_b, point_c)))
用 LaTeX 等數學式語言的寫法(可直接複製)
P = ((n·x₁ + m·x₂) ÷ (m + n), (n·y₁ + m·y₂) ÷ (m + n))
P\left(\dfrac{n x_1 + m x_2}{m + n},\ \dfrac{n y_1 + m y_2}{m + n}\right)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>x</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mi>n</mi><msub><mi>x</mi><mn>1</mn></msub>
<mo>+</mo>
<mi>m</mi><msub><mi>x</mi><mn>2</mn></msub>
</mrow>
<mrow><mi>m</mi><mo>+</mo><mi>n</mi></mrow>
</mfrac>
</mrow>
</math>
x = (n*x_1 + m*x_2)/(m + n)
{(n*x1 + m*x2)/(m + n), (n*y1 + m*y2)/(m + n)}
P := [(n*x1 + m*x2)/(m + n), (n*y1 + m*y2)/(m + n)];
P = [(n*x1 + m*x2)/(m + n), (n*y1 + m*y2)/(m + n)];
x = (n x_1 + m x_2)/(m + n)
Q = ((−n·x₁ + m·x₂) ÷ (m − n), (−n·y₁ + m·y₂) ÷ (m − n))
Q\left(\dfrac{-n x_1 + m x_2}{m - n},\ \dfrac{-n y_1 + m y_2}{m - n}\right)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>x</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mo>−</mo><mi>n</mi><msub><mi>x</mi><mn>1</mn></msub>
<mo>+</mo>
<mi>m</mi><msub><mi>x</mi><mn>2</mn></msub>
</mrow>
<mrow><mi>m</mi><mo>−</mo><mi>n</mi></mrow>
</mfrac>
</mrow>
</math>
x = (-n*x_1 + m*x_2)/(m - n)
{(-n*x1 + m*x2)/(m - n), (-n*y1 + m*y2)/(m - n)}
Q := [(-n*x1 + m*x2)/(m - n), (-n*y1 + m*y2)/(m - n)];
Q = [(-n*x1 + m*x2)/(m - n), (-n*y1 + m*y2)/(m - n)];
x = (-n x_1 + m x_2)/(m - n)
M = ((x₁ + x₂) ÷ 2, (y₁ + y₂) ÷ 2)
M\left(\dfrac{x_1 + x_2}{2},\ \dfrac{y_1 + y_2}{2}\right)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>x</mi>
<mo>=</mo>
<mfrac>
<mrow><msub><mi>x</mi><mn>1</mn></msub><mo>+</mo><msub><mi>x</mi><mn>2</mn></msub></mrow>
<mn>2</mn>
</mfrac>
</mrow>
</math>
x = (x_1 + x_2)/2
{(x1 + x2)/2, (y1 + y2)/2}
M := [(x1 + x2)/2, (y1 + y2)/2];
M = [(x1 + x2)/2, (y1 + y2)/2];
x = (x_1 + x_2)/2
G = ((x₁ + x₂ + x₃) ÷ 3, (y₁ + y₂ + y₃) ÷ 3)
G\left(\dfrac{x_1 + x_2 + x_3}{3},\ \dfrac{y_1 + y_2 + y_3}{3}\right)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>x</mi>
<mo>=</mo>
<mfrac>
<mrow>
<msub><mi>x</mi><mn>1</mn></msub><mo>+</mo>
<msub><mi>x</mi><mn>2</mn></msub><mo>+</mo>
<msub><mi>x</mi><mn>3</mn></msub>
</mrow>
<mn>3</mn>
</mfrac>
</mrow>
</math>
x = (x_1 + x_2 + x_3)/3
{(x1 + x2 + x3)/3, (y1 + y2 + y3)/3}
G := [(x1 + x2 + x3)/3, (y1 + y2 + y3)/3];
G = [(x1 + x2 + x3)/3, (y1 + y2 + y3)/3];
x = (x_1 + x_2 + x_3)/3
請 ChatGPT 幫忙計算的方法
你是數學(坐標幾何)的計算助理。請務必實際執行 Python 程式碼來進行以下計算,並且只根據執行結果的數值回答(不要用心算或推測回答)。 針對坐標平面上的兩點 A(1, 2) 和 B(7, 5),請求出: 1. 把線段 AB 分成 2:1 的內分點 P 的坐標 2. 把線段 AB 外分成 3:1 的外分點 Q 的坐標 3. 線段 AB 的中點 M 的坐標 4. 再加上點 C(4, 8) 時,三角形 ABC 的重心 G 的坐標 Python 請使用標準函式庫的 fractions 模組精確計算,每個答案都同時以約分後的分數和小數表示。 另外,請一步一步推導式子,說明為什麼內分點公式中點 A 的坐標要乘上 n(為什麼公式是「交叉」的)。
使用方法
-
1輸入數值在輸入欄中輸入要計算的數值
-
2計算按下「計算」按鈕
-
3查看結果計算結果會立即顯示。計算的思路和公式的解說,也都能在同一個頁面查看
DataChef 的特色
不需專業知識,操作直覺又簡單
無須登錄任何個人資料
按下「下載」後自動刪除檔案
無須標註來源出處
亦無須事先取得商用授權