<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />まったくランダムではないアートジェネレーター。ブラシのパスに対して多かれ少なかれ垂直なピクセルの垂直線を設定するための明示的な JSL ループを回避するために、ペイント関数がマトリックス インデックスを使用していることに注意してください。M はピクセルを選択し、blend1 と blend2 は幅の広いブラシ ストロークの中心を不透明にし、エッジをより透明にします。(部分的にインスパイアされた別のプロジェクトのオフシュートPython による動的画像生成 – SWHarden.com .)
FactoryArt - YouTube

Window( "x" ) << ウィンドウを閉じます。
スケール = 4;
眉 = 1080 * スケール;
bcols = 1920 * スケール;
赤 = J( 眉、bcols、0 );
緑 = J( 眉、bcols、0 );
青 = J( 眉、bcols、0 );
画像番号 = 0;
paint = Function( {row, col, color, drow},
{m = Max( 1, Min( 眉, 行 - ドロウ ) ) :: Min( 眉, Max( 1, 行 + ドロウ ) ), r, g, b, blend1 = ((1 :: Max( 1, フロア( N 列 ( m ) / 2 ) ))
|| If( N 列 ( m ) > 1,
(天井 ( N 列 ( m ) / 2 ) :: 1)、
[]
))` / Ceiling( N Cols( m ) / 2 ), ブレンド2 = 1 - ブレンド1},
{r, g, b} = RGB への色 ( color );
試す(
赤[メートル、列] = (赤[メートル、列]
ブレンド 2 + r * ブレンド 1);
緑[メートル、列] = (緑[メートル、列]
ブレンド 2 + g * ブレンド 1);
blue[m, col] = (blue[m, col]
ブレンド 2 + b * ブレンド 1);
、
Show( exception_msg、row、col、r、blend1、blend2、drow、m );
止まる();
);
);
ストライプ = 関数 ({amp1、担当者 1、フェーズ 1、担当者 2、フェーズ 2、行、h1、h2、mindr、maxdr}、
{ic, ir, fract, dr, color},
reps1 *= 2 * Pi();
reps2 *= 2 * Pi();
フェーズ 1 *= 2 * Pi();
Phase2 *= 2 * Pi();
amp1 *= スケール;
mindr *= スケール;
maxdr *= スケール;
For( ic = 1, ic <= bcols, ic++,
fract = ic / bcols;
ir = 行 + amp1 * Sin( Phase1 + reps1 * fract );
dr = Interpolate( Sin( phase2 + reps2 * fract ), -1, mindr, 1, maxdr );
color = HLS Color( Interpolate( fract, 0, h1, 1, h2 ), .5, 1 );
ペイント( ir、ic、color、dr );
If( Mod( ic, 512 ) == 0,
待って( .01 );
img = New Image( "rgb", {赤、緑、青} );
img << スケール( .5 );
img << saveimage( "\VBOXSVR\windowsShare\painter\pics\p" || Right( Char( imageno++ ), 6, "0" ) || ".jpg", "jpg" );
);
);
);
画像 = 関数 ( {nstripes},
{ストライプ、フラクト、色相 1、色相 2}、
For( istripe = 1, istripe <= nstripes, istripe++,
Show( ストライプ );
fract = istripe / nstripes;
nfract = 1 - 分数;
thisrow = Random Integer( 眉 / 200, 眉 - 眉 / 200 );
rfract = thisrow / 眉毛;
hue1 = Random Uniform( .8 * rfract + .3, .8 * rfract + .3 );
If( hue1 > 1, hue1 -= 1 );// alow h1 ラップアラウンド
hue2 = hue1 + Random Uniform( 0, .2 );
If( hue2 > 1, hue2 = 1 );// h2 の回り込みを防ぐ
縞(
Interpolate( fract, 0, 50, 1, 10 ), // amp1
Random Uniform( .1, .4 ), // rep1
Random Uniform( 0, 1 ), //フェーズ
Random Uniform( 0, .2 ), // rep2
Random Uniform( 0, 1 ), // フェーズ 2
thisrow, // ターゲット行
色相1、
色相2、
5, // 最小デルタ
Random Integer( 5 + 25 * nfract, 50 + 150 * nfract ) // 最大デルタ
);
)
);
絵(100);
待ちます( 0 );
img = New Image( "rgb", {赤、緑、青} );
img << スケール( .5 );
img << saveimage( "\VBOXSVR\windowsShare\painter\pics\p" || Right( Char( imageno++ ), 6, "0" ) || ".jpg", "jpg" );
New Window( "x", img );