/*
var length = 220;
var radius1 = 30;
var radius2 = 10;
var position =150;
var num = 2;
*/
/*
var length = 220;
var radius1 = 130;
var radius2 = 32;
var position = 101;
var num = 8;
*/
/*
var length = 220;
var radius1 = 130;
var radius2 = 64;
var position = 101;
var num = 16;
*/

var length = 220;
var radius1 = 130;
var radius2 = 64;
var position = 221;
var num = 16;

values = Dialog.prompt("Enter Spirograph Values", [
	{ value: length, description: "Length", width: 50 },
	{ value: radius1, description: "Radius 1", width: 50 },
	{ value: radius2, description: "Radius 2", width: 50 },
	{ value: position, description: "Position", width: 50 },
	{ value: num, description: "Number of passes", width: 50 }
]);

if (values != null) {
    length = values[0];
    radius1 = values[1];
    radius2 = values[2];
    position = values[3];
    num = values[4];

    var step = 1 * Math.PI / 180.0;
    var theta = 0;

    var art = new Path();
    var i = 0;
    while(i <= 360 * num) {
        art.segments.add(new Point(
            length * Math.cos(theta) - position * Math.cos(length * theta / radius2),
            length * Math.sin(theta) - position * Math.sin(length * theta / radius2)
        ));
        theta += step;
        i++;
//        if (i % 10 == 0) activeDocument.redraw();
    }
    art.pointsToCurves();
}