HTML5 06 Canvas SunSystem

来源:互联网 发布:淘宝电玩良心店 编辑:程序博客网 时间:2024/05/16 05:15
<!doctype html><html><head></head><body><canvas id="canvas" width="1000" height="1000" style="background:#000">您的浏览器不支持canvas标签</canvas><script>//设置2d绘图环境var cxt=document.getElementById('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();}}drawTrack();//星球function Star(x,y,radius,cycle,sColor,eColor){//画出星球需要哪些属性//星球的坐标点this.x=x;this.y=y;//星球的半径this.radius=radius;//公转周期this.cycle=cycle;//星球的颜色(开始色,结束色)this.sColor=sColor;this.eColor=eColor;//新建一个渐变颜色空对象this.color=null;//设置一个计时器this.time=0;this.draw=function(){//保存之前的画布内容cxt.save();//重置0,0坐标点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;}}//创建一个太阳对象的构造函数function Sun(){Star.call(this,0,0,20,0,"#F00","#f90");}//创建一个水星的对象构造方法function Mercury(){Star.call(this,0,-50,10,87.70,"#A69697","#5C3E40");}//创建一个金星的对象构造方法function Venus(){Star.call(this,0,-100,10,224.701,"#C4BBAC","#1F1315");}//创建一个地球的对象构造方法function Earth(){Star.call(this,0,-150,10,365.224,"#78B1E8","#050C12");}//创建一个火星的对象构造方法function Mars(){Star.call(this,0,-200,10,686.98,"#CEC9B6","#76422D");}//创建一个木星的对象构造方法function Jupiter(){Star.call(this,0,-250,10,4332.589,"#C0A48E","#322222");}//创建一个土星的对象构造方法function Saturn(){Star.call(this,0,-300,10,10759.5,"#F7F9E3","#5C4533");}//创建一个天王星的对象构造方法function Uranus(){Star.call(this,0,-350,10,30799.095,"#A7E1E5","#19243A");}//创建一个天王星的对象构造方法function Neptune(){Star.call(this,0,-400,10,60152,"#0661B2","#1E3B73");}//创建太阳对象实例var sun=new Sun();//创建水星对象实例var water=new Mercury();//创建金星对象实例var gold=new Venus();//创建一个地球对象实例var diqiu=new Earth();//创建一个火星对象实例var fire=new Mars();//创建一个木星对象实例var wood=new Jupiter();//创建一个土星对象实例var soil=new Saturn();//创建一个天王星对象实例var god=new Uranus();//创建一个海王星对象实例var sea=new Neptune();function move(){//清除画布cxt.clearRect(0,0,1000,1000);//画出轨道drawTrack();//画出每个星球sun.draw();water.draw();gold.draw();diqiu.draw();fire.draw();wood.draw();soil.draw();god.draw();sea.draw();}//使个星球进行运动setInterval(move,10);</script></body></html>

0 0