>웹 프론트엔드 >프런트엔드 Q&A >JavaScript는 삼각 함수를 지원합니까?

JavaScript는 삼각 함수를 지원합니까?

青灯夜游
青灯夜游원래의
2021-11-03 16:53:462008검색

JavaScript는 삼각 함수를 지원합니다. js의 삼각 함수는 모두 정적 메서드이며 Math를 사용하여 호출해야 하므로 구문 형식은 "Math.sin(x)", "Math.cos(x)", "Math.tan(x)"입니다.

JavaScript는 삼각 함수를 지원합니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

JavaScript는 삼각 함수를 지원합니다. 그들은 "Math.sin(x)", "Math.cos(x)", "Math.tan(x)"입니다.

삼각 함수에 대한 JavaScript의 지원을 살펴보겠습니다.

먼저 고등학교 때 배웠던 삼각함수에 대한 기본 지식을 복습해 보겠습니다. 여기서는 몇 가지 간단한 내용을 소개하겠습니다. 첫 번째는 sin 함수, 두 번째는 cos 함수, 세 번째는 tan입니다. 함수. 4 또는 4는 수학에서 sin 함수는 실제로 삼각형의 대변을 빗변과 비교하여 얻은 값입니다.

그러면 cos30= x/r code>, cos 함수는 반대쪽과 위쪽의 비율, <code>tan30=y/x이고, tan 함수는 반대쪽과 위쪽의 비율입니다. 이 공식을 통해 우리는 삼각함수 값을 쉽게 얻을 수 있고, 이 값을 사용하여 흥미로운 일을 할 수 있습니다! ! 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

그리고 실제로 JavaScript의 삼각 함수와 수학의 삼각 함수 사이에는 약간의 차이점이 있습니다. 첫 번째는 js의 삼각 함수는 모두 정적 메서드이며 세 가지 함수는 각각 수학을 사용하여 호출해야 한다는 것입니다. Math.sin(), Math.cos(), Math.tan()입니다.

두 번째 차이점은 수학에서 삼각 함수로 허용되는 매개 변수는 각도이지만 js에서 허용되는 매개 변수는 라디안 각도라는 점입니다. ? ? 걱정하지 마세요. 간단한 소개를 먼저 살펴보겠습니다

원의 한 변의 길이가 원의 반지름과 같다면 이 변은 그림의 빨간색 부분과 마찬가지로 1라디안을 나타냅니다. 우리가 정말로 원하는 것은 우리가 원하는 각도를 라디안으로 변환하는 것입니다. 여기서는 수학 공식 1 angle=π/180을 적용합니다. 그러면 10개의 각도는 와 같습니다. 10*π/180 La

그런 다음 js의 Math.sin()을 사용하여 30도 각도를 계산해야 하며, Math.sin으로 작성해야 합니다. (30*Math.PI/180), 여기서 js의 πMath.PI라는 점에 유의하세요. 나는 모든 사람이 여기에서 js의 삼각 함수에 대해 어느 정도 이해하고 있어야 한다고 믿습니다. 따라서 작은 실제 예를 살펴보겠습니다.

 우선 필요성이 있습니다. 페이지에 작은 공이 있습니다. 마우스를 페이지 위에 놓으면 마우스가 그곳으로 움직이기를 원합니다. 공은 해당 위치로 이동하게 되는데, 참고로 마우스 위치로 이동하는 것이 아니라, 여기에 URL을 올려놓기가 쉽지 않습니다.


그 중 빨간 공은 총구를 나타냅니다. 파란색 공은 마우스의 위치를 ​​나타냅니다. 마우스를 페이지의 다른 위치에 놓으면 빨간색 공이 해당 각도로 이동하지만 평면의 범위를 나타내는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.