火曜日, 8月 05, 2025

JavaScriptでAI遊び 58 
Illustratorで最小多角形の直径間隔で蛇の目風を作る

Illustratorで最小多角形の直径の間隔で蛇の目風を作る。多角形対応版。

数を指定しても煩雑になるので、ここでは元の多角形を含めて4つの多角形で作成する蛇の目風マークを任意の多角形を選択して自動生成します。その際、最小多角形がそれぞれの多角形の垂直方向の間隔を同じとします。

結果、選択した多角形の垂直方向の直径Aに対して
2つ目の多角形の直径は(A÷7×5)、
3つ目の多角形の直径は(A÷7×3)、
一番小さい多角形の直径は(A÷7×1)
となります。

奇数角形の場合。中心点の関係で見た目はチョット変ですが、間違っていません。

(function () {
var doc = app.activeDocument;
var sel = doc.selection;
if (sel.length !== 1 || sel[0].typename !==
        "PathItem" || !sel[0].closed) {
alert("1つの多角形を選択してください。");
return;
}
var basePolygon = sel[0];
var baseBounds = basePolygon.geometricBounds;
var centerX = (baseBounds[0] + baseBounds[2]) / 2;
var centerY = (baseBounds[1] + baseBounds[3]) / 2;
var baseWidth = baseBounds[2] - baseBounds[0];
var baseHeight = baseBounds[1] - baseBounds[3];
var sizes = [5/7, 3/7, 1/7];
for (var i = 0; i < sizes.length; i++) {
var newWidth = baseWidth * sizes[i];
var newHeight = baseHeight * sizes[i];
var newPolygon = basePolygon.duplicate();
newPolygon.resize(sizes[i] * 100, sizes[i] * 100);
newPolygon.position =
            [centerX - newWidth / 2, centerY + newHeight / 2];
newPolygon.stroked = true;
newPolygon.filled = false;
}
})();

偶数角形の処理結果。

奇数角形の処理結果。