首頁 > web前端 > 前端問答 > JavaScript支援三角函數嗎

JavaScript支援三角函數嗎

青灯夜游
發布: 2021-11-03 16:57:51
原創
2061 人瀏覽過

JavaScript支援三角函數。 js中的三角函數都是靜態方法,必須使用Math來調用,因此語法格式為“Math.sin(x)”,“Math.cos(x)”,“Math.tan(x)”。

JavaScript支援三角函數嗎

本教學操作環境: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(&#39;box&#39;);
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+&#39;px&#39;;
obox.style.left = 400+cx+&#39;px&#39;;
}
</script>
</html>
登入後複製
###【推薦學習:###javascript進階教學###】###

以上是JavaScript支援三角函數嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板