跳到主要內容跳到頁尾

三角函式基本款:SIN、COS、TAN、ATAN2 與角度弧度轉換

5 分鐘閱讀Lv.3 中級摘要與日期

SIN、COS、TAN 和它們的反函數 ASIN、ACOS、ATAN、ATAN2,加上 RADIANS、DEGREES、PI 的角度弧度轉換。用斜坡高度和兩地經緯度距離(haversine)當實例。

發布

文章目錄

今天整理一組三角函式,SIN、COS、TAN 和它們的反函數,外加負責角度與弧度轉換的 RADIANS、DEGREES、PI。

我在工作上用到的機會不多,通常是算斜坡或屋頂的高度,或是用兩地的經緯度估算直線距離,這兩個題目這篇最後都會做。其他情況當工具書查就好。

怎麼選

最容易踩的地方先講:Google 試算表的三角函式一律用弧度(radian),不是度。SIN(30) 不是 0.5,是 30 弧度的正弦,約 -0.9880。要用度,就先用 RADIANS 轉過去,結果是角度的函式(ASIN、ACOS、ATAN、ATAN2)再用 DEGREES 轉回來。

想做的事用哪個輸入輸出
已知角度,求對邊比斜邊SIN弧度比值
已知角度,求鄰邊比斜邊COS弧度比值
已知角度,求對邊比鄰邊TAN弧度比值
已知比值,求角度ASIN、ACOS、ATAN比值弧度
已知座標,求角度ATAN2x、y弧度
角度與弧度互換RADIANS、DEGREES角度或弧度弧度或角度

倒數的 SEC、CSC、COT 和雙曲函數另外整理在 倒數與雙曲三角函式,指數與對數在 指數、對數與特殊函式。輸入是複數(3+4i 這種格式)的話,要改用 IMSIN、IMCOS 這類函式,見 複數三角與雙曲函式。

角度與弧度

PI

傳回圓周率 π,不需要參數,括號仍要寫。

語法:

Google 試算表公式
fx

圓周率,取到小數 4 位

=TEXT(PI(), "0.0000")

結果是 3.1416。半圓是 π 弧度,整圓是 2π,所以 就是整圓的弧度數。

RADIANS

把角度換成弧度。

語法:

  • 角度:以度為單位的數字。

180 度剛好是 π 弧度:

Google 試算表公式
fx

180 度轉弧度

=TEXT(RADIANS(180), "0.0000")

結果是 3.1416。手算的話是 角度 × π ÷ 180,所以 90 度就是 1.5708 弧度。

DEGREES

把弧度換成角度,RADIANS 的反方向。

語法:

Google 試算表公式
fx

π 弧度轉角度

=TEXT(DEGREES(PI()), "0.0000")

結果是 180.0000。ASIN 這類函式算出來的弧度,我習慣直接包一層 DEGREES 再看,比較有感覺。

正弦、餘弦、正切

下面三個函式都以 A2 放斜坡的斜長 12.5 公尺、B2 放坡度角 17 度來示範。

SIN

傳回角度的正弦,也就是對邊比斜邊。

語法:

斜坡的高度 = 斜長 × SIN(坡度角):

Google 試算表公式
fx

斜長 12.5 公尺、坡度角 17 度的高度

=A2*SIN(RADIANS(B2))

12.5 × sin(17°) 約 3.6546,所以高度大約 3.6546 公尺。

最容易漏掉的就是 RADIANS。直接寫 會把 17 當成 17 弧度,答案完全不對,也不會出現錯誤提示。

另外,SIN(PI()) 理論上是 0,電腦算出來是約 1.2E-16 的極小數,顯示時要小心。需要整齊的結果就包 ROUND,例如 得到 0。

COS

傳回角度的餘弦,也就是鄰邊比斜邊。

語法:

同一個斜坡的水平距離 = 斜長 × COS(坡度角):

Google 試算表公式
fx

斜長 12.5 公尺、坡度角 17 度的水平距離

=A2*COS(RADIANS(B2))

結果約 11.9538 公尺。可以驗一下畢氏定理:3.6546 的平方加上 11.9538 的平方,開根號剛好回到 12.5。

TAN

傳回角度的正切,也就是對邊比鄰邊,工地上的「坡度百分比」就是它乘以 100。

語法:

Google 試算表公式
fx

坡度角 17 度的坡度比值

=TEXT(TAN(RADIANS(B2)), "0.0000")

結果是 0.3057,也就是約 30.57% 的坡度。

TAN 在 90 度、270 度這些位置在數學上沒有定義。電腦的 π 只是近似值,所以 會得到約 1.6E+16 的極大數字,而不是錯誤,看到這種大到離譜的數就代表角度踩到了 90 度附近。

反三角函數

反函數是已知比值,求角度,結果是弧度,要轉成度就包 DEGREES。以下用量到的高 3.65 公尺、斜長 12.5 公尺、水平 11.95 公尺來反推坡度角。

ASIN

傳回反正弦,輸入必須在 -1 到 1 之間,結果落在 -π/2 到 π/2。

語法:

Google 試算表公式
fx

用高度與斜長反推坡度角

=TEXT(DEGREES(ASIN(3.65/12.5)), "0.0000")

結果是 16.9777 度。輸入超過 1,例如 ,會得到 #NUM!。

ACOS

傳回反餘弦,輸入同樣是 -1 到 1,結果落在 0 到 π。

語法:

Google 試算表公式
fx

用水平距離與斜長反推坡度角

=TEXT(DEGREES(ACOS(11.95/12.5)), "0.0000")

結果是 17.0596 度。跟 ASIN 的 16.9777 度有些差距,是因為 3.65 和 11.95 都是四捨五入後的量測值,量測值本身的誤差會被放大,這是正常的。

ATAN

傳回反正切,任何數字都能輸入,結果落在 -π/2 到 π/2。

語法:

Google 試算表公式
fx

用高度與水平距離反推坡度角

=TEXT(DEGREES(ATAN(3.65/11.95)), "0.0000")

結果是 16.9847 度。三個反函數裡我最常用 ATAN,因為它不會有輸入超出範圍的問題,只要鄰邊不是 0 就能算。

ATAN2

由 x、y 座標算出該點的角度,結果落在 -π 到 π,能分辨在哪一個象限。

語法:

  • x:點的 x 座標。
  • y:點的 y 座標。

注意引數順序是 x 在前、y 在後,跟很多程式語言的 atan2(y, x) 相反,這是新手最常寫反的地方。

Google 試算表公式
fx

x 為 -1、y 為 1 的點,距離正 x 軸幾度

=TEXT(DEGREES(ATAN2(-1, 1)), "0.0000")

結果是 135.0000 度。同一個點用 ATAN(1/-1) 只會得到 -45 度,因為 ATAN 只看比值,分不出 (1, -1) 和 (-1, 1)。ATAN2(0, 0) 會是 #DIV/0!。

實例:兩地經緯度算直線距離

最後一個題目,我想知道台北車站(緯度 25.0478、經度 121.5170)到高雄車站(緯度 22.6394、經度 120.3022)的直線距離。座標取小數 4 位的大約值。

地球是球體,不能直接用平面的畢氏定理,要用 haversine 公式。先把四個數字放進去,A2 是起點緯度、B2 是起點經度、C2 是終點緯度、D2 是終點經度。地球半徑取 6371 公里:

Google 試算表公式
fx

haversine 公式,算兩地球面距離(公里)

=2*6371*ASIN( SQRT( SIN(RADIANS(C2-A2)/2)^2 + COS(RADIANS(A2))*COS(RADIANS(C2))*SIN(RADIANS(D2-B2)/2)^2 ) )

拆開看,緯度差與經度差都先 RADIANS 轉成弧度並除以 2,SIN 平方之後依公式組合,SQRT 開根號、ASIN 還原成中心角,最後乘上 2 倍半徑。算出來是 294.9220 公里。

也有人把最後一步寫成 ATAN2(SQRT(1-a), SQRT(a)),在兩點非常接近或剛好在地球對面時比較穩。這個距離用 ASIN 的寫法就夠了,兩種寫法的結果相同。

這個距離是球面上的直線距離,不是公路或鐵路的里程。

需要的時候回來查一下,就這樣!

分享:
#三角函式#弧度#角度#經緯度距離
喜特先生 Mr. Sheet

喜特先生 Mr. Sheet

數據分析師/商業分析師

八年工作經驗,跨不同業界解決數據需求。做過的案例都整理在作品集。

接下來可以

相關文章

查看所有文章

留言討論

共 0 則留言

訂閱電子報,新文章上線就通知你

免費,隨時可取消。

送出即表示同意服務條款與隱私權政策。