【小(xiǎo)編推薦】得(de)到(dào)圓上(shàng)每個(≈↓gè)點的(de)坐(zuò)标 Math↑♦✘♣.sin/Math.cos的(de)用(yòng)法(jq圓形™±運動)

2016-03-03   ₹σ∑|   發布者:梁↓£←國(guó)芳  &n♣εbsp;|   ↔®>£查看(kàn):3320次

前端開(kāi)發

Math.sin(x)   &♦≥¥nbsp;  x 的(de)正玄值。返回值在 -1.0 到(dàoσ♣) 1.0 之間(jiān);

Math.cos(x)    ₽×​σ;x 的(de)餘弦值。返回的(de)是(shì) -1¶÷§.0 到(dào) 1.0 之間(jiā→↕n)的(de)數(shù);

這(zhè)兩個(gè)函數(shù)中的(de)X 都(dōu)是☆♣(shì)指的(de)“弧度&≠•rdquo;而非“角度”,弧度的(de)計(jì)算(σ>φ↕suàn)公式為(wèi): 2*PI/360*角度;

30° 角度 的(de)弧度 = 2*PI/360*✔£"30

 

如(rú)何得(de)到(dào)圓上(shàng)每個(g↔₩ βè)點的(de)坐(zuò)标?

解決思路(lù):根據三角形的(de)正玄、餘弦來(lái£φ™)得(de)值;

假設一(yī)個(gè)圓的(de)圓心坐(zuò)标是(shì)(a,b♦©↔₽),半徑為(wèi)r,

則圓上(shàng)每個(gè)點的(de)X坐(zuò)♦₹λ标=a + Math.sin(2*Math.PI / 36←₹ ​0) * r ;Y坐(zuò)标=b + Math.cos(2*♥↑'‌Math.PI / 360) * r ;

 

如(rú)何求時(shí)鐘(zhōng)的(de)秒(miǎo)針轉≈∑動一(yī)圈的(de)軌迹?

假設秒(miǎo)針的(de)初始值(起點)為≠β↑↔(wèi)12點鐘(zhōng)方向,圓心的(de)坐(zuò)标為(↑®​•wèi)(a,b)。

解決思路(lù):一(yī)分(fēn)鐘(zhōγφ÷ng)為(wèi)60秒(miǎo),一(® yī)個(gè)圓為(wèi)360°,所 φ以平均每秒(miǎo)的(de)轉動角度為(wèi) 360°λ↓§;/60 = 6°;

 

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

      var hudu±∑♦δ = (2*Math.PI / 360) * 6 * times;

     &';  var X = a + Ma↑₩₩¥th.sin(hudu) * r;

    &nbs≠πp;  var Y = b - Math.cos★♦♥(hudu) * r  &nbs€©≥p; //  注意此處是(shì)“-&rdq≈₹β∞uo;号,因為(wèi)我們要(yào)得(de≤ε→)到(dào)的(de)Y是(shì)相(xiàng)對(duì)↑β于(0,0)而言的(de)。

}

以下(xià)是(shì)我做(zuò)的(de)一( →yī)個(gè)小(xiǎo)案例:(僅供參考)

         ε>;         &nbε₽sp;     &nb★≥₩ sp;   var r = 120↕π;   //圓形半徑
   var hudu = (2*Math.PI / 3α•​"60) *(-45);   // &nb÷δsp;360/8=45,即45度(這(z✘★hè)個(gè)随個(gè)人(rén)¥→設置)
   var X = 95 + Math.sin(huγ©du) * r;    //  95 λλ ≈是(shì)圓形中心的(de)坐(zuò)标X &nbα₹±sp; 即定位left 的(de)值
   var Y = 95 - Math.cos(hudu♥≈♦₩) * r;    //  95 是(↓<shì)圓形中心的(de)坐(zuò)标Y   即定位to→₩p 的(de)值
$('.fix').css({
left:X+"px",
top:Y+"px",
})     //.fix在圓上(shàng)的(de) ↑♥位置