<!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>