玩轉html5(五)---月球繞著地球轉,地球繞著太陽轉(canvas實現,同樣可以動哦)

來源:互聯網
上載者:User

關於運動速度的參數與真實速度有點差距,大家可以自行調整


<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>地球繞著太陽轉,月球繞著地球轉</title></head><body>    <canvas width="600" height="600" style="background:black"id="canvas">    您的瀏覽器不支援canvas    </canvas>    <script>        //擷取畫布         var canvas=document.getElementById('canvas');        //擷取繪圖環境         var cxt=canvas.getContext('2d');        //d單位時間time (1:1天)        var time=0;        function draw(){         //清除畫布              cxt.clearRect(0,0,600,600);           //畫地球軌道                cxt.strokeStyle="#FFF";                cxt.beginPath();                //路徑函數                cxt.arc(300,300,180,0,360,false);                cxt.closePath();                cxt.stroke();              //畫太陽                cxt.beginPath();                //路徑函數 x,y,r,角度範圍,順時針/逆時針                cxt.arc(300,300,20,0,360,false);                cxt.closePath();                //填充(漸層色)                //cxt.createLinearGradient(內圓心x,內圓心y,內半徑r,外圓心x,外圓心y,外圓半徑r);                var sunColor=cxt.createRadialGradient(300,300,0,300,300,10);                sunColor.addColorStop(0,"#F00");                sunColor.addColorStop(1,"#F90");                cxt.fillStyle=sunColor;                cxt.fill();                       //畫地球                cxt.save();                //異次元空間00點                cxt.translate(300,300);                //旋轉角度,地球公轉一周需要365天,time=1轉365/360度                cxt.rotate(time*365/360*Math.PI/180);                //畫球                cxt.beginPath();                cxt.arc(180,0,10,0,360,false);                var earthColor=cxt.createRadialGradient(180,0,0,180,0,10);                cxt.strokeStyle="#050c12";                earthColor.addColorStop(0,"#78B1Eb");//#&8B1Eb                earthColor.addColorStop(1,"#050c12");//#050c12                cxt.fillStyle=earthColor;                cxt.fill();                cxt.closePath();         //畫月球軌道和月球                cxt.save();             /*   異次元空間00點,在前邊的基礎上,畫地球時以(300,300)為中心,且未退出異次元空間                月球軌道以地球為中心,在異次元空間,地球為(180,0),這個地方我寫錯了,改了兩個小時才改好 */                cxt.strokeStyle="#FFF";                cxt.translate(180,0);                //畫月球軌道                cxt.beginPath();                cxt.arc(0,0,30,0,360,false);                cxt.stroke();                cxt.closePath();                              //畫月球                cxt.rotate(time*365*Math.PI/180);                cxt.beginPath();                cxt.arc(30,0,5,0,360,false);                 var moonColor=cxt.createRadialGradient(30,0,0,30,0,5);                cxt.strokeStyle="#322222";                moonColor.addColorStop(0,"#c0a48e");                moonColor.addColorStop(1,"#322222");                cxt.fillStyle=moonColor;                cxt.fill();                cxt.closePath();                 cxt.restore();                cxt.restore();                                //每畫一次映像,時間參數加1                time+=1;         }           draw();           //通過修改第二個參數課調整速度           setInterval(draw,50);    </script></body></html>


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.