javascript與三角函數之二:圓周運動

咱們看下咱們經過三角函數要作出來的效果

clipboard.png

sin、cos、tan概念

爲了直觀,咱們引入一個三角形javascript

clipboard.png

概念以下:html

sinα = b / c

cosα = a / c

tanα = b / a

javascript中的表示方法java

π ---> Math.PI

sinα ---> Math.sin(α)

cosα ---> Math.cos(α)

tanα ---> Math.tan(α)

咱們已經角度α和其中c邊的長度,咱們如何求出a邊和b邊的長度呢?
聰明的你已經想到了:b = sinα * c,其餘的邊依此類推。git

圓周運動分析

clipboard.png

圓周運動最終要找的仍是那個灰三角形的left和top值,咱們已經的條件有角度(隨時間變大,初始爲0)和c邊(圓的半徑),那根據上面的公式,a邊和b邊也就能夠求得,那麼,瞬時的left和top也就能夠取得。github

角度與弧度

咱們現實生活中使用的大都是角度,好比:30度、60度,但在計算機中的語言中,使用的都是弧度。啥是弧度呢,咱們先看個圖函數

clipboard.png

當α對着的扇形的周長和圓的半徑相等時,那麼α就等於1弧度。咋推導出來的呢,咱們知道圓的周長爲:2πr,一週爲360度,因此2πr = 360,根據上面的定義,一個半徑的長度爲一弧度,因此1弧度 = 180 / π 度,反過來1度= π / 180 弧度
咱們在程序中,每次加的都是角度,因此須要轉化成弧度才能讓js中三角函數中使用,代碼以下:spa

var ang = 60

var a = Math.cos(ang * (Math.PI / 180)) * r

源碼及實現,請移步GitHub

相關文章
相關標籤/搜索