canvas實現太陽、地球和月亮旋轉效果
分享一段程式碼例項,它實現了地月系公轉效果。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> </head> <body> <canvas id="myCanvas" width="800" height="550"></canvas> <script type="text/javascript"> var sun = new Image(); var moon = new Image(); var earth = new Image(); function init(){ sun.src = 'https://mdn.mozillademos.org/files/1456/Canvas_sun.png'; moon.src = 'https://mdn.mozillademos.org/files/1443/Canvas_moon.png'; earth.src = 'https://mdn.mozillademos.org/files/1429/Canvas_earth.png'; window.requestAnimationFrame(draw); } function draw() { var ctx = document.getElementById('myCanvas').getContext('2d'); ctx.globalCompositeOperation = 'destination-over'; ctx.clearRect(0,0,300,300); // clear canvas ctx.fillStyle = 'rgba(0,0,0,0.4)'; ctx.strokeStyle = 'rgba(0,153,255,0.4)'; ctx.save(); ctx.translate(150,150); // Earth var time = new Date(); ctx.rotate( ((2*Math.PI)/60)*time.getSeconds() + ((2*Math.PI)/60000)*time.getMilliseconds() ); ctx.translate(105,0); ctx.fillRect(0,-12,50,24); // Shadow ctx.drawImage(earth,-12,-12); // Moon ctx.save(); ctx.rotate( ((2*Math.PI)/6)*time.getSeconds() + ((2*Math.PI)/6000)*time.getMilliseconds() ); ctx.translate(0,28.5); ctx.drawImage(moon,-3.5,-3.5); ctx.restore(); ctx.restore(); ctx.beginPath(); ctx.arc(150,150,105,0,Math.PI*2,false); // Earth orbit ctx.stroke(); ctx.drawImage(sun,0,0,300,300); window.requestAnimationFrame(draw); } init(); </script> </body> </html>
圖片是引用的外網的,可能顯示會有所延遲。
相關文章
- css地球月亮太陽環繞旋轉CSS
- canvas實現的旋轉太極圖效果Canvas
- Python模擬太陽-地球-月亮運動模型Python模型
- canvas旋轉太極圖效果Canvas
- CSS3 太陽系星球旋轉效果CSSS3
- canvas實現的旋轉的太極圖效果程式碼例項Canvas
- HTML+CSS實現太極旋轉效果HTMLCSS
- canvas繪製太陽系運動效果Canvas
- three.js實現的地球3D旋轉效果JS3D
- Flash遮罩做地球旋轉效果遮罩
- | / - 的旋轉效果實現(轉)
- canvas繪製太陽系Canvas
- css3實現旋轉的太極圖效果程式碼例項CSSS3
- SVG實現的圓環旋轉效果SVG
- canvas小球旋轉loadding載入效果Canvas
- 滑鼠懸浮div實現旋轉效果
- jQuery和css3實現的摩天輪旋轉效果jQueryCSSS3
- js和css3實現360旋轉滾動效果JSCSSS3
- 滑鼠懸浮實現環形旋轉效果
- css3實現環狀旋轉效果CSSS3
- 用HTML5的canvas畫太陽系HTMLCanvas
- canvas實現波浪效果Canvas
- canvas繪製旋轉一定角度的矩形效果Canvas
- css3實現的旋轉的陀螺效果CSSS3
- CSS3邊框旋轉動畫實現效果CSSS3動畫
- css3實現的立方體旋轉效果CSSS3
- CSS3實現的3D旋轉效果CSSS33D
- css3實現的旋轉載入等待效果CSSS3
- canvas 圍繞中心旋轉Canvas
- canvas實現 漂亮的下雨效果Canvas
- css實現的彎彎的月亮效果程式碼例項CSS
- css3實現旋轉loadding載入效果CSSS3
- CSS3實現的小球旋轉載入等待效果CSSS3
- Three.js實現太陽系八大行星的自轉公轉JS
- 卡片旋轉動畫效果動畫
- DOM 和 Canvas 如何實現文字豎向排列的效果Canvas
- css3實現的3D立體旋轉效果CSSS33D
- css3實現的旋轉魔方效果程式碼例項CSSS3