有兩種用法。【由兩點求】輸入點 1 和點 2 的坐標,就會計算斜率、距離、角度和直線方程式。【由一點和距離求】把點 2 的欄位留白,輸入距離 d 和斜率 m(或角度 θ),就會計算從點 1 前進後的點的坐標。
這個頁面可以做什麼
- 只要輸入兩點的坐標,就能立即知道直線的斜率 \(m\)(=一次函數的變化率)
- 在算出斜率的同時,也會一起計算兩點距離、斜角 \(\theta\)、直線方程式 \(y = mx + b\)、y 截距和 x 截距
- 也能反過來由「一個點、前進的距離和斜率(或角度)」,求出前進後的點的坐標
- 公式的淺顯解說,以及可直接複製到 Excel、Google 試算表、Python 的公式,也都整理在這個頁面
這個計算有什麼用?
在台灣,依內政部「建築物無障礙設施設計規範」,輪椅用坡道的坡度不得大於 1/12(水平 12 升高 1=斜率約 0.083)。「高低差 60 cm 的玄關,能不能做水平長度 7.2 m 的坡道?」這種評估,正是斜率的計算(0.6 ÷ 7.2 = 1/12,剛好符合規定。換成角度約 4.8°)。
住宅整修或設施設計時,可以用數字確認坡道能不能安全使用。
坡道標誌上的「10%」是「水平前進 100 m 上升 10 m」=斜率 0.1 的意思,換成角度是 \(\arctan 0.1 \approx 5.7°\)。「10% 不等於 10°」,知道的人意外地少。
看懂這個讀法,開車選檔位、規劃單車或跑步路線時,就能事先用數字估計坡有多陡。
屋頂的傾斜常用「水平 10 升高 4」(坡度 4/10=斜率 0.4)這樣的比來表示,換成角度是 \(\arctan 0.4 \approx 21.8°\)。
每種屋頂材料都有能使用的坡度範圍,所以師傅和設計師天天都在用這個換算。自己 DIY 做儲物棚的屋頂時也派得上用場。
在地圖上水平距離 1000 m、要爬升 300 m 的路線,平均斜率是 300 ÷ 1000 = 0.3(斜角約 16.7°),實際走的斜坡距離由畢氏定理可估計為 \(\sqrt{1000^2 + 300^2} \approx 1044\) m。
能用數字掌握「實際距離比地圖上長,體力消耗由斜率決定」,登山計畫就會更安全。
「4 月營收 NT$400 萬,7 月變成 NT$580 萬」的話,斜率是(580 − 400)÷ (7 − 4) = 每月 60 萬元,可以讀成「每月平均成長 60 萬元」。
折線圖的斜率就是「變化的速度」。營收、體重、氣溫等,由兩個時間點的值求變化快慢的計算,都和這個頁面的斜率公式相同。
公式與圖形
符號與用語解說
符號
| \(m\) | m | 直線的斜率,表示「橫向每走 1,縱向變多少」。正的是往右上升,負的是往右下降。 |
| \((x_1, y_1)\), \((x_2, y_2)\) | x 下標 1、y 下標 1 | 兩個點的坐標。\(x\) 是橫向、\(y\) 是縱向的位置,右下方的小數字(下標)用來區分「第 1 個點、第 2 個點」。 |
| \(\Delta x\), \(\Delta y\) | delta x、delta y | 變化量(改變的量)。\(\Delta\)(delta)是表示「變化」的希臘字母,\(\Delta x = x_2 - x_1\)、\(\Delta y = y_2 - y_1\)。 |
| \(d\) | d | 兩點距離,取自 distance(距離)的字首。 |
| \(\theta\) | theta | 常用來命名角度的希臘字母。在這個頁面表示直線和 x 軸的夾角(斜角)。 |
| \(b\) | b | y 截距,也就是直線和 y 軸相交的高度(\(x = 0\) 時 \(y\) 的值)。 |
| \(\tan\) | tangent(正切) | 三角比之一,是角度對應的「縱 ÷ 橫」的比。直線的斜率以 \(m = \tan\theta\) 的關係和角度連在一起。 |
| \(\arctan\) | arctangent(反正切) | 正切的反向計算,求「tan 的值等於該數的角度」。工程計算機上寫成 tan⁻¹。 |
用語
| 斜率 | 表示直線傾斜程度的數,也就是「x 增加 1 時 y 增加多少」,越大直線越陡。道路和屋頂的「坡度」也是同樣的想法。 |
| 變化率 | (y 的變化量)÷(x 的變化量)。一次函數的變化率和直線的斜率完全相同。 |
| 一次函數 | 可以寫成 \(y = mx + b\) 形式的函數。圖形是一條直線,\(m\) 是斜率,\(b\) 是 y 截距(國中課本常寫成 \(y = ax + b\))。台灣在國中八年級學習。 |
| 截距 | 圖形和坐標軸相交的位置。和 y 軸相交的高度是 y 截距(\(x = 0\) 時的 \(y\)),和 x 軸相交的位置是 x 截距(\(y = 0\) 時的 \(x\))。 |
| 斜角 | 直線和 x 軸(水平方向)的夾角,也叫傾斜角。和斜率有 \(m = \tan\theta\) 的關係。 |
| 坡度 | 坡道、屋頂等傾斜程度的實用說法。道路標誌的「10%」是「水平前進 100 m 上升 10 m」=斜率 0.1 的意思。 |
| 坐標 | 用(橫向位置,縱向位置)這組數表示點的位置。點(3, 4)是「從原點往右 3、往上 4」的位置。台灣在國中七年級學習。 |
| 鉛直線 | 和 x 軸垂直(往正上方延伸)的直線。x 的變化量是 0,斜率的公式會變成「除以 0」,所以斜率不存在。方程式不是 \(y = mx + b\) 的形式,而是 \(x = \text{常數}\) 的形式。 |
建議先了解的基礎知識
為了能「理解意思」地使用這個頁面的計算,這裡整理了建議先了解的基礎知識。
卡住的時候,回到這裡的內容複習是最快的方法。
| 坐標平面(國中七年級,12~13 歲) |
|
| 正負數的計算(國中七年級,12~13 歲) |
|
| 一次函數與變化率(國中八年級,13~14 歲) |
|
| 畢氏定理(國中八年級,13~14 歲) |
|
| 三角比 tan(高一,15~16 歲) |
|
用 Excel 計算的方法
| 點 1 的 x 坐標 x₁ | 3 |
| 點 1 的 y 坐標 y₁ | 4 |
| 點 2 的 x 坐標 x₂ | 6 |
| 點 2 的 y 坐標 y₂ | 8 |
| 斜率 m | =(B4-B2)/(B3-B1) |
| 點 1 的 x 坐標 x₁ | 3 |
| 點 1 的 y 坐標 y₁ | 4 |
| 點 2 的 x 坐標 x₂ | 6 |
| 點 2 的 y 坐標 y₂ | 8 |
| 兩點距離 d | =SQRT((B3-B1)^2+(B4-B2)^2) |
| 點 1 的 x 坐標 x₁ | 3 |
| 點 1 的 y 坐標 y₁ | 4 |
| 點 2 的 x 坐標 x₂ | 6 |
| 點 2 的 y 坐標 y₂ | 8 |
| 斜角 θ(度) | =DEGREES(ATAN2(B3-B1,B4-B2)) |
| 通過點的 x 坐標 x₁ | 1 |
| 通過點的 y 坐標 y₁ | 5 |
| 斜率 m | -2 |
| y 截距 b | =B2-B3*B1 |
| x 截距 | =-B4/B3 |
| 點 1 的 x 坐標 x₁ | 1 |
| 點 1 的 y 坐標 y₁ | 1 |
| 前進的距離 d | 5 |
| 斜率 m | 0.75 |
| x 的變化量 Δx | =B3/SQRT(1+B4^2) |
| y 的變化量 Δy | =B4*B5 |
| 前進後的 x 坐標 x₂ | =B1+B5 |
| 前進後的 y 坐標 y₂ | =B2+B6 |
「SQRT(…)」是平方根,「^2」是平方,「DEGREES(…)」是把弧度換成度的函數,「ATAN2(橫向變化量,縱向變化量)」是由兩個方向的變化量求角度的函數。
第 1 個表的斜率約 1.333,第 2 個表的距離是 5,第 3 個表的角度約 53.13°。第 3 個表的 ATAN2 會傳回 −180°~180° 的角度,往右下降的直線想統一成 0~360° 顯示時,請加上 360。
第 5 個表計算的是「往右前進的解」(例子中是點(5, 4))。往左前進的解,只要在 Δx 公式的開頭加上負號(=-B3/SQRT(1+B4^2))就能求出。
用 Google 試算表計算的方法
| 點 1 的 x 坐標 x₁ | 3 |
| 點 1 的 y 坐標 y₁ | 4 |
| 點 2 的 x 坐標 x₂ | 6 |
| 點 2 的 y 坐標 y₂ | 8 |
| 斜率 m | =(B4-B2)/(B3-B1) |
| 點 1 的 x 坐標 x₁ | 3 |
| 點 1 的 y 坐標 y₁ | 4 |
| 點 2 的 x 坐標 x₂ | 6 |
| 點 2 的 y 坐標 y₂ | 8 |
| 兩點距離 d | =SQRT((B3-B1)^2+(B4-B2)^2) |
| 點 1 的 x 坐標 x₁ | 3 |
| 點 1 的 y 坐標 y₁ | 4 |
| 點 2 的 x 坐標 x₂ | 6 |
| 點 2 的 y 坐標 y₂ | 8 |
| 斜角 θ(度) | =DEGREES(ATAN2(B3-B1,B4-B2)) |
| 通過點的 x 坐標 x₁ | 1 |
| 通過點的 y 坐標 y₁ | 5 |
| 斜率 m | -2 |
| y 截距 b | =B2-B3*B1 |
| x 截距 | =-B4/B3 |
| 點 1 的 x 坐標 x₁ | 1 |
| 點 1 的 y 坐標 y₁ | 1 |
| 前進的距離 d | 5 |
| 斜率 m | 0.75 |
| x 的變化量 Δx | =B3/SQRT(1+B4^2) |
| y 的變化量 Δy | =B4*B5 |
| 前進後的 x 坐標 x₂ | =B1+B5 |
| 前進後的 y 坐標 y₂ | =B2+B6 |
用 Python 計算的方法
import math
x1, y1 = 3.0, 4.0 # 點 1 的坐標
x2, y2 = 6.0, 8.0 # 點 2 的坐標
delta_x = x2 - x1 # x 的變化量
delta_y = y2 - y1 # y 的變化量
slope = delta_y / delta_x # 斜率 m(delta_x 為 0 時是鉛直線,無法計算)
distance = math.hypot(delta_x, delta_y) # 兩點距離(和 √(Δx²+Δy²) 相同)
angle = math.degrees(math.atan2(delta_y, delta_x)) % 360 # 角度(0~360°)
y_intercept = y1 - slope * x1 # y 截距 b
print(f"斜率 m: {slope}")
print(f"距離 d: {distance}")
print(f"角度 θ: {angle}")
print(f"直線方程式: y = {slope}x + {y_intercept}")
# 反過來求「從點 (x1, y1) 往斜率 slope 的方向前進距離 d 後的點」
d = 5.0
dx = d / math.sqrt(1 + slope ** 2) # 往右前進的解(往左前進的解是 -dx)
dy = slope * dx
print(f"前進後的點: ({x1 + dx}, {y1 + dy})")
用 LaTeX 等數學式語言的寫法(可直接複製)
m = (y₂ − y₁) ÷ (x₂ − x₁)
m = \frac{y_2 - y_1}{x_2 - x_1}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>m</mi>
<mo>=</mo>
<mfrac>
<mrow><msub><mi>y</mi><mn>2</mn></msub><mo>−</mo><msub><mi>y</mi><mn>1</mn></msub></mrow>
<mrow><msub><mi>x</mi><mn>2</mn></msub><mo>−</mo><msub><mi>x</mi><mn>1</mn></msub></mrow>
</mfrac>
</mrow>
</math>
m = (y_2 - y_1)/(x_2 - x_1)
(y2 - y1)/(x2 - x1)
m := (y2 - y1)/(x2 - x1);
m = (y2 - y1)/(x2 - x1);
m = (y_2 - y_1)/(x_2 - x_1)
d = √(Δx² + Δy²)
d = \sqrt{\Delta x^2 + \Delta y^2}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>d</mi>
<mo>=</mo>
<msqrt>
<mrow>
<msup><mrow><mi mathvariant="normal">Δ</mi><mi>x</mi></mrow><mn>2</mn></msup>
<mo>+</mo>
<msup><mrow><mi mathvariant="normal">Δ</mi><mi>y</mi></mrow><mn>2</mn></msup>
</mrow>
</msqrt>
</mrow>
</math>
d = sqrt((Delta x)^2 + (Delta y)^2)
Sqrt[dx^2 + dy^2]
d := sqrt(dx^2 + dy^2);
d = sqrt(dx^2 + dy^2);
d = √(Δx^2 + Δy^2)
θ = arctan(m)
\theta = \arctan m
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>θ</mi>
<mo>=</mo>
<mi>arctan</mi>
<mo>⁡</mo>
<mi>m</mi>
</mrow>
</math>
theta = arctan(m)
ArcTan[m]
theta := arctan(m);
theta = atan(m);
θ = arctan(m)
y = mx + b (b = y₁ − m·x₁)
y = mx + b, \quad b = y_1 - m x_1
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>y</mi>
<mo>=</mo>
<mi>m</mi><mi>x</mi>
<mo>+</mo>
<mi>b</mi>
<mo>,</mo>
<mi>b</mi>
<mo>=</mo>
<msub><mi>y</mi><mn>1</mn></msub>
<mo>−</mo>
<mi>m</mi><msub><mi>x</mi><mn>1</mn></msub>
</mrow>
</math>
y = m x + b, b = y_1 - m x_1
b = y1 - m*x1; y = m*x + b
b := y1 - m*x1; y := m*x + b;
b = y1 - m*x1; y = m*x + b;
y = mx + b, b = y_1 - mx_1
Δx = ±d ÷ √(1 + m²), Δy = m·Δx
\Delta x = \pm\frac{d}{\sqrt{1 + m^2}}, \quad \Delta y = m\,\Delta x
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mrow><mi mathvariant="normal">Δ</mi><mi>x</mi></mrow>
<mo>=</mo>
<mo>±</mo>
<mfrac>
<mi>d</mi>
<msqrt><mrow><mn>1</mn><mo>+</mo><msup><mi>m</mi><mn>2</mn></msup></mrow></msqrt>
</mfrac>
<mo>,</mo>
<mrow><mi mathvariant="normal">Δ</mi><mi>y</mi></mrow>
<mo>=</mo>
<mi>m</mi>
<mrow><mi mathvariant="normal">Δ</mi><mi>x</mi></mrow>
</mrow>
</math>
Delta x = +-d/sqrt(1 + m^2), Delta y = m Delta x
dx = d/Sqrt[1 + m^2]; dy = m*dx
dx := d/sqrt(1 + m^2); dy := m*dx;
dx = d/sqrt(1 + m^2); dy = m*dx;
Δx = ±d/√(1 + m^2), Δy = mΔx
請 ChatGPT 幫忙計算的方法
你是數學的計算助理。請務必實際執行 Python 程式碼來進行下面的計算,並只以執行結果的數值作為回答的根據(不要用心算或推測回答)。 對於坐標平面上的兩點(3, 4)和(6, 8),請分別求出下列的值: 1. 通過這兩點的直線的斜率 m 2. 兩點距離 d 3. 直線和 x 軸的夾角 θ(度) 4. 直線方程式 y = mx + b(也列出 y 截距 b 的值) 請列出計算用的公式和執行結果的數值。
使用方法
-
1輸入數值在輸入欄中輸入要計算的數值
-
2計算按下「計算」按鈕
-
3查看結果計算結果會立即顯示。計算的思路和公式的解說,也都能在同一個頁面查看
DataChef 的特色
不需專業知識,操作直覺又簡單
無須登錄任何個人資料
按下「下載」後自動刪除檔案
無須標註來源出處
亦無須事先取得商用授權