html5使用canvas绘制太阳系效果


Posted in HTML / CSS onDecember 15, 2014

星球 变量名 公转周期 光色 暗色
水星 Mercury 87.70 #a69697 #5c3e40
金星 Venus 224.701.70 #c4bbac #1f1315
地球 Earth 365.2422 #78b1e8 #050c12
火星 Mars 686.98 #cec9b6 #76422d
木星 Jupiter 4332.589 #c0a48e #322
土星 Saturn 10759.95 #f7f9e3 #5c4553
天王星 Uranus 30799.095 #a7e115 #19243a
海王星 Neptune 60152.95 #0661b2 #1E3b73

<canvas id="canvas" width="1000" height="1000" style="background-color: #000;"></canvas>

复制代码
代码如下:

var canvas=document.getElementById("canvas");
var cxt=canvas.getContext("2d");

function DrawTrack(){
for(var i=0;i<8;i++){
cxt.beginPath();
cxt.arc(500,500,(i+1)*50,0,360,false);
cxt.closePath();
cxt.strokeStyle="#fff";
cxt.stroke();
}
}
function DrawStart(x,y,radius,cycle,sColor,eColor){
//画出星球需要哪些属性

//星球的坐标点
this.x=x;
this.y=y;
//星球的半径
this.radius=radius;
//星球的颜色(开始色,结束色)
this.sColor=sColor;
this.eColor=eColor;
//创建一个渐变色空对象
this.color=null;
this.time=0;
//公共周期
this.cycle=cycle;
this.draw=function(){
cxt.save();
cxt.translate(500,500);
//设置旋转角度
cxt.rotate(this.time*360/this.cycle*Math.PI/180);
cxt.beginPath();
cxt.arc(this.x,this.y,this.radius,0,360,false);
cxt.closePath();
this.color=cxt.createRadialGradient(this.x,this.y,0,this.x,this.y,this.radius);
this.color.addColorStop(0,this.sColor);
this.color.addColorStop(1,this.eColor);
cxt.fillStyle=this.color;
cxt.fill();
cxt.restore();
this.time+=1;
}
}</p> <p> function Sun(){//太阳1
DrawStart.call(this,0,0,20,0,"#f00","#f90");
}
function Mercury(){//水星2
DrawStart.call(this,0,-50,10,87.70,"#A69697","#5c3e40");
}
function Venus(){//金星3
DrawStart.call(this,0,-100,10,224.71,"#c4bbac","#1f1315");
}
function Earth(){//地球4
DrawStart.call(this,0,-150,10,365.224,"#78b1e8","#050c12");
}
function Mars(){//火星5
DrawStart.call(this,0,-200,10,686.98,"#cec9b6","#76422d");
}
function Jupiter(){//木星6
DrawStart.call(this,0,-250,10,4332.589,"#c0a48e","#322");
}
function Saturn(){//土星7
DrawStart.call(this,0,-300,10,10759.5,"#f7f9e3","#5c4533");
}
function Uranus(){//天王星8
DrawStart.call(this,0,-350,10,30799.95,"#a7e1e5","#19243a");
}
function Neptune(){//天王星9
DrawStart.call(this,0,-400,10,60152.95,"#0661b2","#1E3b73");
}

var s=new Sun();//1

var m=new Mercury();//2
var v=new Venus();//3
var e=new Earth();//4
var ma=new Mars();//5
var j=new Jupiter();//6
var sa=new Saturn();//7
var ur=new Uranus();//8
var ne=new Neptune();//9

setInterval(function(){
cxt.clearRect(0,0,1000,1000);
DrawTrack();
s.draw();
m.draw();
v.draw();
e.draw();
ma.draw();
j.draw();
sa.draw();
ur.draw();
ne.draw();
},10);

html5使用canvas绘制太阳系效果

HTML / CSS 相关文章推荐
移动端rem布局的两种实现方法
Jan 03 HTML / CSS
CSS3系列教程:背景图片(背景大小和多背景图) 应用说明
Dec 19 HTML / CSS
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
Dec 30 HTML / CSS
使用CSS3实现SVG路径描边动画效果入门教程
Oct 21 HTML / CSS
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
Aug 24 HTML / CSS
用HTML5 Canvas API中的clearRect()方法实现橡皮擦功能
Mar 15 HTML / CSS
socket.io 和canvas 实现的共享画板功能
May 22 HTML / CSS
HTML5 Video/Audio播放本地文件示例介绍
Nov 18 HTML / CSS
详解H5 活动页之移动端 REM 布局适配方法
Dec 07 HTML / CSS
前端实现背景虚化但内容清晰且自适应 的实例代码
Aug 01 HTML / CSS
浅谈Html5页面打开app的一些思考
Mar 30 HTML / CSS
html+css实现赛博朋克风格按钮
May 26 HTML / CSS
html5使用canvas绘制一张图片
Dec 15 #HTML / CSS
html5使用canvas画三角形
Dec 15 #HTML / CSS
html5使用canvas画空心圆与实心圆
Dec 15 #HTML / CSS
html5使用canvas画一条线
Dec 15 #HTML / CSS
html5绘制时钟动画
Dec 15 #HTML / CSS
html5的canvas方法使用指南
Dec 15 #HTML / CSS
html5各种页面切换效果和模态对话框用法总结
Dec 15 #HTML / CSS
You might like
js 动态加载事件的几种方法总结
2013/12/25 Javascript
jQuery Validate 验证,校验规则写在控件中的具体实例
2014/02/27 Javascript
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
jQuery中:only-child选择器用法实例
2015/01/03 Javascript
JS验证IP,子网掩码,网关和MAC的方法
2015/07/02 Javascript
JS实现的不规则TAB选项卡效果代码
2015/09/18 Javascript
jQuery获取剪贴板内容的方法
2016/06/16 Javascript
bootstrap读书笔记之CSS组件(上)
2016/10/17 Javascript
AngularJS模板加载用法详解
2016/11/04 Javascript
用最少的JS代码写出贪吃蛇游戏
2018/01/12 Javascript
javascript数据类型中的一些小知识点(推荐)
2019/04/18 Javascript
webpack 如何解析代码模块路径的实现
2019/09/04 Javascript
微信小程序实现轨迹回放的示例代码
2019/12/13 Javascript
React组件设计模式之组合组件应用实例分析
2020/04/29 Javascript
JS简易计算器实例讲解
2020/06/30 Javascript
Python编程之属性和方法实例详解
2015/05/19 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
对Python多线程读写文件加锁的实例详解
2019/01/14 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
2019/03/13 Python
详解Python的三种可变参数
2019/05/08 Python
python itchat实现调用微信接口的第三方模块方法
2019/06/11 Python
Django如何实现密码错误报错提醒
2020/09/04 Python
Python如何实现机器人聊天
2020/09/10 Python
结构工程个人自荐信范文
2013/11/30 职场文书
《小熊住山洞》教学反思
2014/02/21 职场文书
运动会方阵口号
2014/06/07 职场文书
文秘应届生求职信
2014/07/05 职场文书
债务追讨授权委托书范本
2014/10/16 职场文书
2015元旦联欢晚会结束语
2014/12/14 职场文书
社区党风廉政建设调研报告
2015/01/01 职场文书
单位计划生育责任书
2015/05/09 职场文书
珍爱生命主题班会
2015/08/13 职场文书
总结一下关于在Java8中使用stream流踩过的一些坑
2021/06/24 Java/Android
Python Matplotlib绘制等高线图与渐变色扇形图
2022/04/14 Python
字节飞书面试promise.all实现示例
2022/06/16 Javascript