指定半径の三角形からN角形を自動描画します。
// 多角形描画
function drawRegularPolygon(sides, radius, centerX, centerY) {
    var doc = app.activeDocument;
    var angle = 360 / sides;
    var points = [];
        for (var i = 0; i < sides; i++) {
        var theta = (angle * i - 90) * (Math.PI / 180);
        var x = centerX + radius * Math.cos(theta);
        var y = centerY + radius * Math.sin(theta);
        points.push([x, y]);
    }
        var polygon = doc.pathItems.add();
    polygon.setEntirePath(points.concat([points[0]]));
    polygon.closed = true;
    polygon.stroked = true;
    polygon.filled = false;
}
function main() {
    if (app.documents.length === 0) {
        alert("ドキュメントを開いてください。");
        return;
    }
    // 半径を指定
    var radius = 
        parseFloat(prompt("半径を入力してください: ", "100"));
    if (isNaN(radius) || radius <= 0) {
        alert("有効な半径を入力してください。");
        return;
    }
    // N角形までを指定
    var maxSides = 
        parseInt(prompt("最大の角数を入力してください: ", "12"));
    if (isNaN(maxSides) || maxSides < 3) {
        alert("有効な角数を入力してください (3以上)。");
        return;
    }
    // 描画位置を指定(これじゃダメみたい)
    var doc = app.activeDocument;
    var startX = radius * 1.5;
    var centerY = doc.height / 2;
    var leftEdge = 0 + radius;
    // 3角形からN角形までを描画
    for (var sides = 3; sides <= maxSides; sides++) {
        drawRegularPolygon(sides, radius, leftEdge + (sides - 3) * 
        (radius * 2.5), centerY);
    }
}
main();
実行したら半径値を入力・・・
続けてN角形までの数を入力すれば・・・
自動的に描画しますが、どうしてもドキュメントの中に描画出来ないので、画面を縮小表示して確認してください。この問題解決はチョット時間が掛かりそうです。




 
 
 

 
