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