canvas实现宇宙星尘尘埃行星旋转动画效果代码
代码语言:html
所属分类:动画
代码描述:canvas实现宇宙星尘尘埃行星旋转动画效果代码
代码标签: canvas 宇宙 星尘 尘埃 行星 旋转 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!doctype html> <html lang="zh-CN"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width,initial-scale=1" /> <title>全屏 宇宙 星尘(Canvas)</title> <style> html,body{height:100%;margin:0;background:#02020b;overflow:hidden} canvas{display:block; width:100vw; height:100vh; background: radial-gradient(ellipse at 50% 40%, #05040a 0%, #02020b 40%, #000 100%);} /* small credit text (optional) */ .credit{ position:fixed;right:12px;bottom:8px;color:rgba(255,255,255,0.18);font-family:Inter, system-ui, -apple-system; font-size:12px;pointer-events:none; text-shadow:0 1px 6px rgba(0,0,0,0.6) } </style> </head> <body> <canvas id="c"></canvas> <div class="credit">宇宙星尘 · 缓慢旋转</div> <script> (function(){ const canvas = document.getElementById('c'); const ctx = canvas.getContext('2d', { alpha: true }); let W = window.innerWidth, H = window.innerHeight; let DPR = Math.max(1, window.devicePixelRatio || 1); let cx = W/2, cy = H/2; let maxRadius = Math.min(W, H) * 0.48; let particles = []; let farStars = []; let ROT_SPEED = 0.000008; // rad per ms, very slow let arms = 4; let particleCount = Math.max(900, Math.min(5000, Math.floor((W*H)/800))); const reduceMotion = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches; // Utility: hex <-> rgb, lerp function hexToRgb(h){ h = h.replace('#',''); return { r: parseInt(h.substring(0,2),16), g: parseInt(h..........完整代码请登录后点击上方下载按钮下载查看
网友评论0