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
那麼我們在javascript裡面的三角函數和數學中的三角函數其實有一點區別外,第一是寫髮上不一樣,js裡面三角函數都是靜態方法,必須使用Math來調用,三個函數分別是
Math.sin(),
Math.cos(),
Math.tan()。
1角度=π /180
那麼10個角度就等於10*π/180
啦那我們要用js的
Math.sin()算出30度角等於多少,那麼就應該寫成
Math.sin(30*Math.PI/180)
π是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支援三角函數嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!