Actionscript:
-
const TWO_PI:Number=Math.PI*2;
-
// x, y, max radius, notch number
-
drawVerts(calcGear(200, 200, 50, 9));
-
-
drawVerts(calcGear(400, 200, 30, 3));
-
-
drawVerts(calcGear(300, 350, 30, 5));
-
-
drawVerts(calcGear(400,400, 30, 2));
-
-
function calcGear(x:Number, y:Number, maxRad:Number, s:int):Array {
-
var verts:Array = new Array();
-
var step:Number=TWO_PI / (s * 4);
-
var mod:Number=0;
-
for (var i:Number = 0; i<=TWO_PI; i+=step) {
-
var r:Number = (int(mod)%2+1) * maxRad;
-
mod+=.5;
-
verts.push(x + r * Math.cos(i));
-
verts.push(y + r * Math.sin(i));
-
}
-
return verts;
-
}
-
-
// could use draw path here instead;
-
function drawVerts(verts:Array):void{
-
graphics.lineStyle(0,0x000000);
-
graphics.moveTo(verts[0], verts[1]);
-
for (var i:int = 2; i<verts.length; i+=2) {
-
graphics.lineTo(verts[i], verts[i + 1]);
-
}
-
graphics.lineTo(verts[0], verts[1]);
-
}
Needed to draw some gear shapes today...