火曜日, 9月 10, 2024

JavaScriptでAI遊び 25 
ランダムなサイズと色の円を100描画(CMYK版)

表示しているファイルの中にサイズと色違いの円を100個描画させます。
CMYK版

/* cmyk_circle100 */
function randomCMYKColor() {
// ランダムなCMYKカラーを生成
var color = new CMYKColor();
color.cyan = Math.random() * 100;
color.magenta = Math.random() * 100;
color.yellow = Math.random() * 100;
color.black = Math.random() * 0;
    //Blackを利用するとダークな結果になるので利用していません
return color;
}

function createRandomCircles(numCircles, minSize, maxSize) {
var doc = app.activeDocument;
// ドキュメントのアートボードの範囲を取得
var artboard =
        doc.artboards[doc.artboards.getActiveArtboardIndex()];
var abRect = artboard.artboardRect;
var abLeft = abRect[0];
var abTop = abRect[1];
var abRight = abRect[2];
var abBottom = abRect[3];

for (var i = 0; i < numCircles; i++) {
// ランダムな円のサイズを決定
var size = minSize + Math.random() * (maxSize - minSize);

// ランダムな位置を決定(アートボード内)
var x = abLeft + Math.random() * (abRight - abLeft - size);
var y = abTop - Math.random() * (abTop - abBottom - size);

// 新しい円を作成
var circle = doc.pathItems.ellipse(y, x, size, size);

// 円にランダムなCMYK色を設定
circle.fillColor = randomCMYKColor();
circle.stroked = false; // 線なし
}
}

if (app.documents.length > 0) {
var numCircles = 100;
var minSize = 20; // 円の最小サイズ
var maxSize = 100; // 円の最大サイズ
createRandomCircles(numCircles, minSize, maxSize);
} else {
alert("ドキュメントを開いてください。");
}
/* cmyk_circle100 */

実行結果 A

実行結果 B