标题 | html5使用canvas绘制太阳系效果 |
内容 | 星球变量名公转周期光色暗色 水星mercury87.70#a69697#5c3e40 金星venus224.701.70#c4bbac#1f1315 地球earth365.2422#78b1e8#050c12 火星mars686.98#cec9b6#76422d 木星jupiter4332.589#c0a48e#322 土星saturn10759.95#f7f9e3#5c4553 天王星uranus30799.095#a7e115#19243a 海王星neptune60152.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); |
随便看 |
|
在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。