太阳系

xiaoxiao2021-02-28  107

< ! doctype html > < html >       < head > < / head >       < body >             < canvas id="canvas" width="1000" height="1000" style="background:#000" >                   不支持呀,不支持.             < / canvas >             < script >                   var cxt=document.getElementByIdx_x("canvas").getContext("2d");                   //画轨道                   function drawPathWay(){                         for(var i=0;i<8;i++){                               cxt.beginPath();                               cxt.lineWidth=1;                               cxt.strokeStyle="white";                               cxt.arc(500,500,50*(i+1),0,360,false);                               cxt.stroke();                               cxt.closePath();                         }                   }                   drawPathWay();                   //画球的通用方法                   function draw(x,y,r,v,bcolor,ecolor){                         this.x=x;                         this.y=y;                         this.r=r;                         this.v=v;                         this.bcolor=bcolor;                         this.ecolor=ecolor;                         //                         this.color=null;                         this.time=0;                         this.draw=function(){                               cxt.save();                               cxt.translate(500,500);                               cxt.rotate(this.time*(360/this.v)*Math.PI/180);                               cxt.beginPath();                               cxt.arc(this.x,this.y,this.r,0,360,false);                               cxt.closePath();                                                             this.color=cxt.createRadialGradient(this.x,this.y,0,this.x,this.y,this.r);                               this.color.addColorStop(0,bcolor);                               this.color.addColorStop(1,ecolor);                               cxt.fillStyle=this.color;                               cxt.fill();                                                             cxt.restore();                               this.time+=1;                         }                   }                   //构造各个球体                   function Sun(){                         draw.call(this,0,0,20,0,"#F00","#f90");                   }                   function Mercury(){                         draw.call(this,0,-50,10,87.70,"#A69697","#5C3E40");                   }                   function Venus(){                         draw.call(this,0,-100,10,224.701,"#C4BBAC","#1F1315");                   }                   function Earth(){                         draw.call(this,0,-150,10,365.224,"#78B1E8","#050C12");                   }                   function Mars(){                         draw.call(this,0,-200,10,686.98,"#CEC9B6","#76422D");                   }                   function Jupiter(){                         draw.call(this,0,-250,10,4332.589,"#C0A48E","#322222");                   }                   function Saturn(){                         draw.call(this,0,-300,10,10759.5,"#F7F9E3","#5C4533");                   }                   function Uranus(){                         draw.call(this,0,-350,10,30799.095,"#A7E1E5","#19243A");                   }                   function Neptune(){                         draw.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 sunWord(){                         cxt.clearRect(0,0,1000,1000);                         drawPathWay();                         sun.draw();                         water.draw();                         gold.draw();                         diqiu.draw();                         fire.draw();                         wood.draw();                         soil.draw();                         god.draw();                         sea.draw();                   }                   sunWord();                   //动                   setInterval(sunWord,10);             < / script >       < / body > < / html > 因为有类似的操作,所以可以考虑写活代码,本来准备画死的的,至于这个,最不怎么理解的就是那个球构造。 把他想成JAVA里的对象,就好理解一点了,相当于是创建一个球类,传的参数是类的属性,里面有个方法,就是画圆,画的时候要把需要的属性都准备好。在外面就可以创建对象后调用方法。 而 function Sun(){                         draw.call(this,0,0,20,0,"#F00","#f90");                   }这个,就是这个方法调用自己,this把自己放进去。和java还是有区别的,但是不结合我就没发理解了。。。希望以后能越来越顺利哈。
转载请注明原文地址: https://www.6miu.com/read-32568.html

最新回复(0)