Math.PI和Math.sin() 與 Math.cos()搭配使用詳解


Math.PI 表示一個圓的周長與直徑的比例,約為 3.141592653589793,其實就是我們所說的圓周率 π 

Math.sin(x) //x 的正玄值。返回值在 -1.0 到 1.0 之間;

Math.cos(x) //x 的余弦值。返回的是 -1.0 到 1.0 之間的數;

 

角度和弧度轉換公式:

  弧度 = 角度*PI/180 
  角度 = 弧度*180/PI

還有一個計算弧度常用的:(一樣的)

  弧度的計算公式為: 2*PI/360*角度;

 

 驗證:

弧度 = 角度 ×(PI/180);

30° 角度 的弧度 = 30 * (PI/180)

 

 

案例一:根據半徑獲取圓周值

使用 Math.PI 計算給定半徑的圓周長

function calculateCircumference (radius) {
  return 2 * Math.PI * radius;
}

calculateCircumference(1);  // 6.283185307179586

 

案例二:如何得到圓上每個點的坐標?

解決思路:根據三角形的正玄、余弦來得值;

假設一個圓的圓心坐標是(a,b),半徑為r

則圓上每個點的:

X坐標 = a + Math.sin(2*Math.PI / 360) * r  ;

Y坐標 = b + Math.cos(2*Math.PI / 360) * r  ;

---------------------------------------------------------

如何得到圓上每個點的坐標?

解決思路:根據三角形的正玄、余弦來得值;

假設一個圓的圓心坐標是(a,b),半徑為r,

則圓上每個點的: 
X坐標=a + Math.sin(角度 * (Math.PI / 180)) * r ;
Y坐標=b + Math.cos(角度 * (Math.PI / 180)) * r ; 

 

 

每個人的習慣不一樣..........

圖解:

 

 

 

案例三:如何求時鍾的秒針轉動一圈的軌跡?

假設秒針的初始值(起點)為12點鍾方向,圓心的坐標為(a,b)。

解決思路:一分鍾為60秒,一個圓為360°,所以平均每秒的轉動角度為 360°/60 = 6°; 

for(var times=0; times<60; times++) {

      var hudu = 6 * (Math.PI / 180) *  times;

       var X = a + Math.sin(hudu) * r;

       var Y = b - Math.cos(hudu) * r    //  注意此處是“-”號,因為我們要得到的Y是相對於(0,0)而言的。

}

注意:
1、本例是以“12點為起點, 角度增大時為順時針方向“,求X坐標和Y坐標的方法是:
X坐標=a + Math.sin(角度 * (Math.PI / 180)) * r ;
Y坐標=b - Math.cos(角度 * (Math.PI / 180)) * r ; 

2、一般“3點為起點, 角度增大時為逆時針方向“,求X坐標和Y坐標的方法是:
X坐標 = a + Math.cos(角度 * (Math.PI / 180)) * r;    
Y坐標 = b - Math.sin(角度 * (Math.PI / 180)) * r;    

 

 

角度與弧度互轉(比較好的文章內容)

1、角度定義
     兩條射線從圓心向圓周射出,形成一個夾角和夾角正對的一段弧。當弧長正好等於圓周長的360分之一時,兩條射線的夾角的大小為1度。(單位: º)

2、弧度定義
     兩條射線從圓心向圓周射出,形成一個夾角和夾角正對的一段弧。當這段弧長正好等於圓的半徑時,兩條射線的夾角大小為1弧度(單位:rad)。
可簡單理解為:弧度 = 弧長 / 半徑

 

3、弧長與弧度
     3.1 圓的周長C的計算公式為:C = 2πr = πd    (r - 半徑;d - 直徑)
     3.2 圓一周的弧長為:2πr                    (弧長 = 周長)
     3.2 圓一周的弧度為2πr / r = 2π                  (根據:弧度 = 弧長 / 半徑) 

4、度與角度的轉換
   根據圓為360 º,弧度為2π,即 360º = 2π 

   4.1 角度轉弧度:2π / 360  = π / 180 ≈ 0.0174rad, 即: 度數 * (π / 180) = 弧度
   例如:將30º轉為弧度rad 
   30º * (π / 180)= 0.523320 rad 
 
   4.2 弧度轉角度: 360 / 2π  = 180 / π ≈ 57.3º,  即:  弧度 * (180 / π) = 度數
   例如:將0.523320rad轉為度º
   0.523320rad * (180 / π) = 29.9992352688º 

參考文章:

https://blog.csdn.net/chelen_jak/article/details/80451193

https://blog.csdn.net/chelen_jak/article/details/80480390

https://blog.csdn.net/chelen_jak/article/details/80451193

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM