canvas绘制星球轨道
来源:互联网 发布:淘宝花呗怎么还款 编辑:程序博客网 时间:2024/05/15 17:12
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<canvas width="900" height="900" style="border: 1px solid red;"></canvas>
<script>
// 1.获取canvas对象
var canvas = document.querySelector('canvas');
// 2.获取绘图环境
var ctx = canvas.getContext('2d');
// 坐标原点移动到中间
ctx.translate(canvas.width / 2, canvas.height / 2);
var deg = 0;
setInterval(function() {
deg += 0.1;
// 1.清空画布
ctx.clearRect(-canvas.width / 2, -canvas.height / 2, canvas.width, canvas.height);
// 2.绘制黑色背景
ctx.fillRect(-canvas.width / 2, -canvas.height / 2, canvas.width, canvas.height);
/*
轨道:8条轨道
星球:8大星球+1个太阳
星球围绕太阳旋转
*/
// 3.轨道
for (var i = 1; i <= 8; i++) {
ctx.beginPath();
ctx.arc(0, 0, 50 * i, 0, Math.PI * 2, false);
ctx.strokeStyle = '#fff';
ctx.stroke();
}
// 4.太阳
Star(0, 0, 0, 20, '#F00', '#F90');
// 5.水星
Star(87.7, 0, -50, 10, '#A69697', '#5C3E40');
// 6.金星
Star(224.701, 0, -100, 10, '#C4BBAC', '#1F1315');
// 7.地球
Star(365.224, 0, -150, 10, '#78B1E8', '#050C12');
// 8.火星
Star(686.98, 0, -200, 10, '#78B1E8', '#050C12');
// 9木星
Star(4332.589, 0, -250, 10, '#78B1E8', '#050C12');
// 10.土星
Star(10759.5, 0, -300, 10, '#78B1E8', '#050C12');
// 11.天王星
Star(30799.095, 0, -350, 10, '#78B1E8', '#050C12');
// 12.海王星
Star(60152, 0, -400, 10, '#78B1E8', '#050C12');
}, 100);
function Star(time, x, y, r, startColor, endColor) {
// 6.绘制金星(224.701)
ctx.save();
ctx.beginPath();
ctx.rotate(100 * deg / time);
ctx.arc(x, y, r, 0, Math.PI * 2, false);
var color = ctx.createRadialGradient(x, y, 0, x, y, r);
color.addColorStop(0, startColor);
color.addColorStop(1, endColor);
ctx.fillStyle = color;
ctx.fill();
ctx.restore();
}
</script>
</body>
</html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<canvas width="900" height="900" style="border: 1px solid red;"></canvas>
<script>
// 1.获取canvas对象
var canvas = document.querySelector('canvas');
// 2.获取绘图环境
var ctx = canvas.getContext('2d');
// 坐标原点移动到中间
ctx.translate(canvas.width / 2, canvas.height / 2);
var deg = 0;
setInterval(function() {
deg += 0.1;
// 1.清空画布
ctx.clearRect(-canvas.width / 2, -canvas.height / 2, canvas.width, canvas.height);
// 2.绘制黑色背景
ctx.fillRect(-canvas.width / 2, -canvas.height / 2, canvas.width, canvas.height);
/*
轨道:8条轨道
星球:8大星球+1个太阳
星球围绕太阳旋转
*/
// 3.轨道
for (var i = 1; i <= 8; i++) {
ctx.beginPath();
ctx.arc(0, 0, 50 * i, 0, Math.PI * 2, false);
ctx.strokeStyle = '#fff';
ctx.stroke();
}
// 4.太阳
Star(0, 0, 0, 20, '#F00', '#F90');
// 5.水星
Star(87.7, 0, -50, 10, '#A69697', '#5C3E40');
// 6.金星
Star(224.701, 0, -100, 10, '#C4BBAC', '#1F1315');
// 7.地球
Star(365.224, 0, -150, 10, '#78B1E8', '#050C12');
// 8.火星
Star(686.98, 0, -200, 10, '#78B1E8', '#050C12');
// 9木星
Star(4332.589, 0, -250, 10, '#78B1E8', '#050C12');
// 10.土星
Star(10759.5, 0, -300, 10, '#78B1E8', '#050C12');
// 11.天王星
Star(30799.095, 0, -350, 10, '#78B1E8', '#050C12');
// 12.海王星
Star(60152, 0, -400, 10, '#78B1E8', '#050C12');
}, 100);
function Star(time, x, y, r, startColor, endColor) {
// 6.绘制金星(224.701)
ctx.save();
ctx.beginPath();
ctx.rotate(100 * deg / time);
ctx.arc(x, y, r, 0, Math.PI * 2, false);
var color = ctx.createRadialGradient(x, y, 0, x, y, r);
color.addColorStop(0, startColor);
color.addColorStop(1, endColor);
ctx.fillStyle = color;
ctx.fill();
ctx.restore();
}
</script>
</body>
</html>
0 0
- canvas绘制星球轨道
- HTML5---Canvas-模拟地球-星球运行轨道
- HTML5---Canvas-模拟9星球运行轨道
- Canvas绘制星球轨迹移动
- canvas绘制
- Canvas绘制
- canvas动画效果之星球守护
- 2D制图实战之绘制星球
- Canvas---Canvas绘制钟表,仪表盘
- View.onDraw(Canvas canvas)绘制
- Mathematica在化学中的一个应用例子:绘制电子轨道
- 教您使用ChemBioDraw化学软件绘制s-轨道
- 【Html5】canvas绘制圆形
- html5 canvas 绘制钟表
- Android Canvas 图形绘制
- HTML Canvas 绘制五角星
- canvas 绘制图形1
- canvas 绘制图形2
- JSP技术(五)
- 51nod-1060:最复杂的数(反素数与因数个数计算)
- 算法(第4版) 学习笔记二——二分查找的普通实现与递归实现
- 基础编程练习
- Qt之窗口靠边隐藏
- canvas绘制星球轨道
- javascript对象、类与原型链
- 【备忘】达内,韩顺平,马士兵,孙鑫,郝斌等Java基础视频教程下载
- redis整合ssm
- 进程编程中的vfork
- 工厂方法模板(java编程思想 使用匿名内部类)
- 对OMAP-L138的PSC模块的理解
- 用DFS和BFS求连通分量(邻接表的实现与应用)
- 总结69