1. 程式人生 > >JS Math.sin() 與 Math.cos() 用法

JS Math.sin() 與 Math.cos() 用法

1.關於Math.sin(x)以及math.cos(X)

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

 

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

這兩個函式中的X 都是指的“弧度”而非“角度”,弧度的計算公式為: 2*PI/360*角度;

30° 角度 的弧度 = 2*PI/360*30

 

2.如何得到圓上每個點的座標?

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

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

則圓上每個點的X座標=a + Math.sin(2*Math.PI / 360) * r ;Y座標=b + Math.cos(2*Math.PI / 360) * r ;

 

3.如何求時鐘的秒針轉動一圈的軌跡?

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

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

 

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

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

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

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

}

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

這兩個函式中的X 都是指的“弧度”而非“角度”,弧度的計算公式為: 2*PI/360*角度;

30° 角度 的弧度 = 2*PI/360*30

 

2.如何得到圓上每個點的座標?

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

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

則圓上每個點的X座標=a + Math.sin(2*Math.PI / 360) * r ;Y座標=b + Math.cos(2*Math.PI / 360) * r ;

 

3.如何求時鐘的秒針轉動一圈的軌跡?

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

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

 

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

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

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

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

}

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

這兩個函式中的X 都是指的“弧度”而非“角度”,弧度的計算公式為: 2*PI/360*角度;

30° 角度 的弧度 = 2*PI/360*30

 

2.如何得到圓上每個點的座標?

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

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

則圓上每個點的X座標=a + Math.sin(2*Math.PI / 360) * r ;Y座標=b + Math.cos(2*Math.PI / 360) * r ;

 

3.如何求時鐘的秒針轉動一圈的軌跡?

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

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

 

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

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

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

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

}