98 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 | |
| <html xmlns="http://www.w3c.org/1999/xhtml">
 | |
| <head>
 | |
| <title>Polygons</title>
 | |
| <style type='text/css'>
 | |
| * {
 | |
|   margin:0;
 | |
|   padding:0;
 | |
|   }
 | |
| 
 | |
| canvas {
 | |
|   position:absolute;
 | |
|   top:50%;
 | |
|   left:50%;
 | |
|   margin-top:-200px;
 | |
|   margin-left:-320px;
 | |
|   border:1px solid #000;
 | |
|   }
 | |
| </style>
 | |
| <script type='text/javascript'>
 | |
| function drawpoly(x,y,angles,radius,rotate) {
 | |
| var x,y,angles,radius,rotate,angdif,cang,cx,xy,i
 | |
| if (!x) x=320
 | |
| if (!y) y=200
 | |
| if (!angles) angles=5
 | |
| if (!radius) radius=50
 | |
| if (!rotate) rotate=0
 | |
| angdif=360/angles
 | |
| cang=90-rotate
 | |
| cx=Math.cos(cang*Math.PI/180)*radius
 | |
| cy=-Math.sin(cang*Math.PI/180)*radius
 | |
| for (i=1;i<angles+1;i++) {
 | |
| cang=i*angdif+90-rotate
 | |
| ctx.beginPath()
 | |
| ctx.moveTo(x+cx,y+cy)
 | |
| cx=Math.cos(cang*Math.PI/180)*radius
 | |
| cy=-Math.sin(cang*Math.PI/180)*radius
 | |
| ctx.lineTo(x+cx,y+cy)
 | |
| ctx.stroke()
 | |
| }
 | |
| }
 | |
| 
 | |
| function dps() {
 | |
| ctx.clearRect(0,0,640,400)
 | |
| for (var i=0;i<num;i++) {
 | |
| drawpoly(gx[i],gy[i],gang[i],grad[i],grot[i])
 | |
| grad[i]+=mrad[i]*Math.floor(Math.random()*3)
 | |
| if (grad[i]<10) mrad[i]=1
 | |
| else if (grad[i]>100) mrad[i]=-1
 | |
| 
 | |
| grot[i]+=mrot[i]*Math.floor(Math.random()*3)
 | |
| if (grot[i]<0) mrot[i]=1
 | |
| else if (grot[i]>360) mrot[i]=-1
 | |
| 
 | |
| gx[i]+=mdirx[i]*(Math.floor(Math.random()*5)+1)
 | |
| gy[i]+=mdiry[i]*(Math.floor(Math.random()*5)+1)
 | |
| if (gx[i]<grad[i]+5) mdirx[i]=1
 | |
| else if (gx[i]>640-grad[i]-5) mdirx[i]=-1
 | |
| if (gy[i]<grad[i]+5) mdiry[i]=1
 | |
| else if (gy[i]>400-grad[i]-5) mdiry[i]=-1
 | |
| }
 | |
| setTimeout("dps()",40)
 | |
| }
 | |
| 
 | |
| function load() {
 | |
| ctx=document.getElementById('canvas').getContext('2d')
 | |
| gang=new Array()
 | |
| grad=new Array()
 | |
| grot=new Array()
 | |
| gx=new Array()
 | |
| gy=new Array()
 | |
| mdirx=new Array()
 | |
| mdiry=new Array()
 | |
| mrad=new Array()
 | |
| mrot=new Array()
 | |
| num=10
 | |
| for (var i=0;i<num;i++) {
 | |
| gang[i]=Math.floor(Math.random()*8)+3
 | |
| grad[i]=Math.floor(Math.random()*26)+25
 | |
| grot[i]=Math.floor(Math.random()*360)
 | |
| gx[i]=Math.floor(Math.random()*(640-grad[i]*2))+grad[i]
 | |
| gy[i]=Math.floor(Math.random()*(400-grad[i]*2))+grad[i]
 | |
| 
 | |
| mdirx[i]=Math.floor(Math.random()*2)*2-1
 | |
| mdiry[i]=Math.floor(Math.random()*2)*2-1
 | |
| mrad[i]=Math.floor(Math.random()*2)*2-1
 | |
| mrot[i]=Math.floor(Math.random()*2)*2-1
 | |
| }
 | |
| dps()
 | |
| }
 | |
| 
 | |
| window.onload=load
 | |
| </script>
 | |
| </head>
 | |
| <body>
 | |
| <canvas id='canvas' width='640' height='400'></canvas>
 | |
| </body>
 | |
| </html> | 
