您好,登錄后才能下訂單哦!
這篇文章主要介紹“JavaScript支不支持三角函數”,在日常操作中,相信很多人在JavaScript支不支持三角函數問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JavaScript支不支持三角函數”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
JavaScript支持三角函數。js中的三角函數都是靜態方法,必須使用Math來調用,因此語法格式為“Math.sin(x)”,“Math.cos(x)”,“Math.tan(x)”。
本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
JavaScript支持三角函數。它們分別為:“Math.sin(x)”,“Math.cos(x)”,“Math.tan(x)”。
下面我們來看看JavaScript支持三角函數。
首先呢,我們復習一下高中時候學習的三角函數的的基本知識吧,我這里介紹其中幾個簡單的,第一個是sin函數,第二個是cos函數 ,第三個是tan函數,四四個是atan函數,sin函數在數學里面其實是一個三角形的對邊比上斜邊得出的值,我們來看一個圖像
那么cos30=x/r
,cos函數是臨邊比上斜邊,tan30=y/x
,tan函數則是對邊比上臨邊,通過這些公式,我們可以很容易的得到這個三角函數的值,然后就闊以拿這些值去做有意思的事情啦!!
那么我們在javascript里面的三角函數和數學中的三角函數其實有一點區別外,第一是寫發上不一樣,js里面三角函數都是靜態方法,必須使用Math來調用,三個函數分別是Math.sin()
,Math.cos()
,Math.tan()
。
這個很容易理解咯,那么第二個不同就是數學里面的三角函數使用接受的參數是角度,但是在js里面所接受的參數是弧度,有的朋友可能暈了,弧度角度什么玩意???不要著急,這里簡單介紹一下,我們首先來看一個圓
如果一個圓的一段邊的長度等于這個圓的半徑長度,那么這段邊就代表一弧度,正如圖中紅色部分,就代表一弧度,這個其實僅僅就是一個概念,我們真正要使用的是吧我們想要的角度轉化成弧度,這里直接套用數學公公式 1角度=π/180
那么10個角度就等于10*π/180
啦
那我們要用js的Math.sin()
算出30度角等于多少,那么就應該寫成Math.sin(30*Math.PI/180)
,這里注意一下js里面的π
是Math.PI
。相信大家看到這里對js的三角函數肯定有一些了解咯,那么接下來我們來看一個實際的小例子吧。
首先呢,有一個需求。頁面上有一個小球,我希望當我的鼠標放到頁面上時候,我的鼠標移動到那里。小球就會移動到對應的位置,注意,不是移動到鼠標所在的位置,而是對應的位置,這里不好發網址,發個圖看看吧。
其中,紅色小球代表一個槍口。藍色的小球代表鼠標的位置,當鼠標放置到頁面不同位置的時候,紅色的小球就會移動到相應的角度上與之對應,但是我們也看到有一個r,表示在平面的范圍呢,紅色小球能夠移動的范圍,實際上就是一個圓的半徑,如果這個r越大,那么小球移動的范圍就越大啦!!(不理解的朋友先把下面的例子復制出來運行一下就可以了)
這個功能的實現就需要我們使用三角函數來完成,檢測鼠標的位置并且是在360度的范圍上來檢測,這里就需要通過角度就算出紅色小球的距離左邊值和距離上邊的值,然后賦值給小球就闊以啦!!我們再來看一張圖
下面是這個案例的代碼,有興趣的朋友可以看看!
/***********例子來了*************/ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Document</title> <style> #box{width:30px;height:30px;background:red;position:absolute;top:400px;left:400px;border-radius:15px;} </style> </head> <body> <p id="box"></p> </body> <script> var obox = document.getElementById('box'); var r=50; document.onmousemove=function(ev){ var oev = ev||event; var x = Math.abs(oev.clientX-obox.offsetLeft); var y = Math.abs(oev.clientY-obox.offsetTop); var angle = Math.atan(y/x); var cx=0; var cy=0; if(oev.clientX>=obox.offsetLeft && oev.clientY<=obox.offsetTop){ cx = Math.cos(angle)*r; cy = Math.sin(angle)*-r; } if(oev.clientX<obox.offsetLeft && oev.clientY<obox.offsetTop){ cx = Math.cos(angle)*-r; cy = Math.sin(angle)*-r; } if(oev.clientX<obox.offsetLeft && oev.clientY>obox.offsetTop){ cx = Math.cos(angle)*-r; cy = Math.sin(angle)*r; } if(oev.clientX>obox.offsetLeft && oev.clientY>obox.offsetTop){ cx = Math.cos(angle)*r; cy = Math.sin(angle)*r; } obox.style.top = 400+cy+'px'; obox.style.left = 400+cx+'px'; } </script> </html>
到此,關于“JavaScript支不支持三角函數”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。