iT邦幫忙

2024 iThome 鐵人賽

DAY 13
2
Modern Web

如何詠唱JavaScript的Math咒語系列 第 13

[Day13]-反三角尚未成功,阿天卷仍須努力Math.atan()

  • 分享至 

  • xImage
  •  

前幾天我們認識了函數、反函數還有arcsinarccos兩個反三角函數,最後要介紹的就是我們的阿天卷arctan

「寐偲,阿天卷!!!」

讓我們開始吧!

數學課

arctan

跟前兩天講的arcsinarccos一樣,arctan函數就是tan函數的反函數,前面的章節提到過tan,給他一個角度,他就會回傳他所對應的直角三角形的對邊 / 鄰邊,也可以理解為他的斜率,那他的反函數arctan就會是給他一個斜率,然後他回傳一個對應的角度,一樣因為回傳的只會有一個值,所以範圍會限制在-π/2π/2(含)之間。

tan中好觀察的點(因為回傳只會落在-π/2π/2之間,所以這邊都代這個範圍的角度進去):
tan0° = 0
tan45°(tanπ/2) = 1
tan-45°(tan-π/4) = -1

所以將上面的結果放進arctan
arctan0 = 0
arctan1 = π/4
arctan(-1) = -π/4

看看他的圖形吧!
y = arctanx
image

暖身完了!來看看他怎麼用吧~

Math.atan()

了解arctan之後,Math.atan()也差不多就這樣。
day8_1

--MDN

也就是說Math.atan()就是Math.tan()的反函數!

語法

Math.atan(x)

參數

傳入一個數字。

回傳值

他將回傳x的反正切值(範圍會落在-π/2π/2(含)之間)。
如果xInfinity,回傳π/2
如果x-Infinity,回傳-π/2

規範

day8_2
這個函式會回傳x的反正切值,這個值會以角度表示且會介於-π/2π/2(含)之間。

呼叫時執行以下步驟:

  1. 令一個n,值會是ToNumber(x)的結果。
  2. 如果nNaN+0-0,回傳n
  3. 如果n是正無限大,回傳一個π/2的近似值。
  4. 如果n是負無限大,回傳一個-π/2的近似值。
  5. 如果都不是以上,就回傳n的反正切值近似值。

如同我們圖形看到的,傳入的值在趨近於無限大跟負無限大時分別會收斂到π/2-π/2

直接來用用看吧!

console.log(Math.atan(1) * 180 / Math.PI); //45
console.log(Math.atan(-1) * 180 / Math.PI); //-45
console.log(Math.atan(0) * 180 / Math.PI); //0
console.log(Math.atan(Math.sqrt(3)) * 180 / Math.PI); //59.99999999999999

放入√3想得到60°,但還是會有一點點誤差,一定要注意喔!

今天就輕鬆一點吧!

當我們知道斜率要怎麼知道他所對應的角度呢?

寐偲,啊天卷!!

各位明天見。

參考資料
MDN-Math.atan()
ECMAScript-Math.atan()


上一篇
[Day12]-甜甜的滋味,相反餘弦鹹的淚水Math.acos()
下一篇
[Day14]-阿天卷二世的誕生Math.atan2()
系列文
如何詠唱JavaScript的Math咒語30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言