為什麼我們先把速度剝掉
在上一篇裡,你學會了以單位速度沿曲線行走,重新參數化,讓參數 s 量出誠實走過的距離,使速度的長度恰好為 1。那不是為打掃而打掃——而是讓「彎曲」變得看得見的關鍵一步。當你開在一條蜿蜒的路上,有兩件截然不同的事在改變你的方向:踩油門,以及打方向盤。在一段直路上加速,你的速度向量變長,卻從不往側邊甩;路是直的,速度卻仍在改變。唯有把速度的變化殺掉,我們才能把「轉向」單獨隔離出來。
在單位速度下,速度恰好就是單位切向量 T(s)——一支固定長度為 1、永遠指向你所朝方向的箭頭。因為它的長度永遠不能改變,T 在你前進時唯一能做的事就是轉動。於是 T 轉動的速率,也就是導數 T'(s),捕捉到的是純粹的轉向、別無其他。它的大小恰好是曲率,記作 kappa(s) = |T'(s)|。長度被排除在外,T'(s) 量的就是切向量每走一段單位距離擺動得多快——若你願意,就是「每公尺轉幾度」。
直線與圓:兩個錨點
任何誠實的定義,都該與你早已信任的情形相符。取一條以單位速度走過的直線:切向量 T 從不轉向,它永遠指著同一方向,所以 T'(s) 是零向量,kappa 處處為 0。直線的曲率為零——這正是「不會彎」該有的意思。這是整個課題的地板;沒有東西彎得比直線更少,而曲率永遠非負,因為它是一支箭頭的長度。
現在來看另一個錨點:半徑為 r 的圓。以單位速度走完一圈,切向量轉了整整一圈——2 pi 弧度——而整趟路程長 2 pi r,也就是圓周。所以每單位距離的轉向量是 (2 pi 弧度) / (2 pi r) = 1 / r,在每一點都相同,因為圓彎得很均勻。於是半徑 r 的圓,曲率 kappa = 1 / r。把這層關係慢慢讀:大圓(r 大)幾乎是直的、幾乎不彎,給出小的 kappa;小圓(r 小)急速繞圈,kappa 很大。曲率是尺寸的倒數。
Two anchors that pin down kappa: straight line, radius = infinity : kappa = 0 circle of radius r : kappa = 1 / r big circle (r large) -> kappa small (nearly straight) small circle (r small) -> kappa large (turns hard) Units: kappa is 1/length, e.g. per-metre. A line is the r -> infinity limit, where 1/r falls all the way to 0.
密切圓:能畫出來的曲率
若半徑 r 的圓曲率為 1/r,我們就能把這個想法倒過來用。在一般曲線的任一點上,量出那裡的曲率 kappa,再問:哪個圓恰好以那個速率彎曲?就是半徑 R = 1 / kappa 的那個。把那個圓貼在曲線該點上,不只對齊位置,連方向和彎曲程度都對齊,它就會比任何其他圓都更服貼地咬住曲線。這就是密切圓——其拉丁字源意為「親吻」。它的半徑 R = 1/kappa 是曲率半徑,而它的圓心——坐落在曲線正轉向的那一側、距離 R 之處——就是曲率中心。
這就是你該牢記在腦中的圖像,因為它把一個抽象的導數變成你能描畫的東西。曲線近乎筆直之處,那個親吻它的圓巨大無比(R 大、kappa 小);曲線急轉一個窄彎之處,那個親吻的圓便縮小到緊摟著它(R 小、kappa 大)。看著曲率中心在你沿曲線滑行時描出它自己的路徑,你就畫出了漸屈線——由所有曲率中心掃出的曲線,這暗示了「每點一個數」竟已承載了多少結構。
它往哪邊彎:法向量與一個演算範例
曲率 kappa 告訴你曲線轉得多用力,卻從不告訴你往哪邊——它是個長度,永遠非負,對左右視而不見。缺失的方向就住在 T'(s) 本身裡,在你取它的長度之前。這裡一小段魔法幫上忙:因為 T 的長度恆為 1,它的導數 T'(s) 永遠垂直於 T。(把 T . T = 1 微分,得到 2 T . T' = 0,所以 T . T' = 0。)那個垂直方向,化成單位箭頭,就是主法向量 N(s)。它端端正正地指向彎道的內側——指向曲率中心。兩者合起來給出俐落的陳述 T'(s) = kappa(s) N(s):切向量朝內側轉,速率由 kappa 決定。
- 從一條單位速度曲線出發。取半徑 r 的圓,寫成 r(s) = (r cos(s/r), r sin(s/r));裡面的 s/r 讓速度恰為 1。
- 微分一次得到單位切向量:T(s) = (-sin(s/r), cos(s/r))。檢查它的長度:sin^2 + cos^2 = 1,沒錯——單位速度確認。
- 再微分一次:T'(s) = (-(1/r) cos(s/r), -(1/r) sin(s/r))。把公因子 1/r 提出來。
- 它的長度是 kappa = |T'(s)| = (1/r) * sqrt(cos^2 + sin^2) = 1/r。圓的曲率果真是 1/r,直接由定義算出。
- 剩下的單位方向是 N(s) = (-cos(s/r), -sin(s/r)),它從圓周直直指回圓心 (0, 0)——主法向量正如所許諾的,瞄準曲率中心。
這個演算範例的價值不止於它的算術:它讓你看到整台機器在最簡單的彎曲情形上運轉一遍,落在你的直覺早已信任的答案上。同樣的兩次微分——第一次得到 T,第二次得到 kappa 與 N——對任何單位速度曲線都管用,無論平面或空間。在三維中,第三個方向把這個標架補齊:副法向量 B = T x N,同時垂直於兩者,它的變化率量出曲線如何扭出自己所在的平面。那份扭轉就是撓率,而那正是下一篇接手之處。
有號曲率、任意參數公式,以及誠實的限度
對一條平躺在平面上的曲線,你能做得比非負的 kappa 更好。固定一個定向——比方說,約定左轉算正——你就得到有號曲率,它帶著正號或負號,記錄曲線在每一點是往左偏還是往右偏。它恰好在反曲點處變號,曲線在那裡從往一邊彎過渡到往另一邊彎,瞬間拉直。樸素的 kappa 不過是有號版本的絕對值;那個正負號是唯有在平面中才能取得的額外誠實,也是你在本階尾聲將遇見的轉動數的種子。
實務上,你很少會拿到一條已經是單位速度的曲線——重新參數化常常很醜,或根本無法以封閉形式達成。所以有一條公式,能從任何正則參數化直接讀出曲率,而不必先慢到單位速度。對平面曲線 (x(t), y(t)),它是 kappa = |x' y'' - y' x''| / (x'^2 + y'^2)^(3/2),在空間中對應的版本是 kappa = |r' x r''| / |r'|^3,由外積擔綱。那個 (3/2) 次方與外積,正是把你恰好選用的速度除掉的記帳工夫,於是倖存下來的是路本身的彎曲——與乾淨的 s-公式給出的是同一個 kappa。
在繼續之前,兩條誠實的邊界。第一,這裡每一條公式都假設曲線是正則的、有貨真價實的非零速度;在尖角或尖點處,速度停滯為零,切向量會跳變,曲率根本沒有定義——尖角不是曲率極大的曲線,而是平滑理論不適用的點。第二,在 kappa = 0 之處(反曲點,或一段直線),主法向量 N 完全無法被釘定,因為根本沒有「彎道內側」可供指向;唯有在曲線真正轉彎之處,你才能找回一個確定的 N。點出這些缺口不是理論的弱點——而是理論在精確地說明它能談論的範圍。