import flash.display.*; var points:uint = 20; var angleOffset:uint = 0; var innerRadius:uint = 256; var outerRadius:uint = 128; var starX:uint = stage.stageWidth/2; var starY:uint = stage.stageHeight/2; var canvas:Shape = new Shape(); var g:Graphics = canvas.graphics; addChild(canvas); g.beginFill(0xFF0000); if (points > 2) { var step, halfStep, start, n, dx, dy; // Calculate distance between points. step = (Math.PI*2)/points; halfStep = step/2; // Calculate starting angle in radians start = (angleOffset / 180) * Math.PI; g.moveTo(starX+(Math.cos(start)*outerRadius), starY-(Math.sin(start)*outerRadius)); // Draw lines for (n=1; n<=points; n++) { dx = starX+Math.cos(start+(step*n)-halfStep)*innerRadius; dy = starY-Math.sin(start+(step*n)-halfStep)*innerRadius; trace("drawing to " + dx + "," + dy); g.lineTo(dx, dy); dx = starX+Math.cos(start+(step*n))*outerRadius; dy = starY-Math.sin(start+(step*n))*outerRadius; trace("drawing to " + dx + "," + dy); g.lineTo(dx, dy); } } // butts.