<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />不完全隨機的藝術生成器。請注意,paint 函數使用矩陣索引來避免顯式 JSL 循環來設置像素的垂直線,或多或少垂直於畫筆的路徑。M 選擇像素, blend1 和 blend2 使寬筆觸的中心不透明,邊緣更透明。(另一個項目的分支,部分靈感來自使用 Python 生成動態圖像 – SWHarden.com .)
工廠藝術 - YouTube

窗口(“x”)<<關閉窗口;
規模 = 4;
眉毛 = 1080 * 比例;
bcols = 1920 * 比例;
紅色 = J(眉毛,bcols,0);
綠色=J(眉毛,bcols,0);
藍色 = J(眉毛,bcols,0);
圖像編號 = 0;
油漆=函數({行,列,顏色,卓爾},
{m = Max(1, Min(brows, row - drow)) :: Min(brows, Max(1, row + drow)), r, g, b, blend1 = ((1 :: Max(1, Floor ( N 列( m ) / 2 ) ))
||如果(N列(米)> 1,
(天花板(N Cols(m)/2)::1),
[]
))` / Ceiling(N Cols( m ) / 2 ), blend2 = 1 - blend1},
{r, g, b} = 顏色轉 RGB(顏色);
嘗試(
紅色[m, col] = (red[m, col]
混合 2 + r * 混合 1);
綠色[m, col] = (green[m, col]
混合 2 + g * 混合 1);
藍色[m, col] = (藍色[m, col]
混合 2 + b * 混合 1);
,
Show(exception_msg, row, col, r, blend1, blend2, drow, m);
停止();
);
);
條紋=函數({amp1,reps1,phase1,reps2,phase2,row,h1,h2,mindr,maxdr},
{ic, ir, fract, dr, color},
reps1 *= 2 * Pi();
reps2 *= 2 * Pi();
階段 1 *= 2 * Pi();
階段 2 *= 2 * Pi();
amp1 *= 比例;
mindr *= 規模;
maxdr *= 比例;
For( ic = 1, ic <= bcols, ic++,
分數 = ic / bcols;
ir = row + amp1 * Sin( phase1 + reps1 * fract );
dr = 插值(Sin(phase2 + reps2 * fract),-1,mindr,1,maxdr);
顏色 = HLS 顏色(插值(分數,0,h1,1,h2),.5,1);
油漆(紅外,集成電路,顏色,博士);
如果(國防部(IC,512)== 0,
等待( .01 );
img = 新圖像(“rgb”,{紅、綠、藍});
img << 比例( .5 );
img << saveimage( "\VBOXSVR\windowsShare\painter\pics\p" || Right( Char( imageno++ ), 6, "0" ) || ".jpg", "jpg" );
);
);
);
圖片=函數({nstripes},
{條紋,fract,hue1,hue2},
For( istripe = 1, istripe <= nstripes, istripe++,
顯示(條紋);
fract = istripe / nstripes;
nfract = 1 - 分數;
thisrow = Random Integer(brows / 200, brows - brows / 200);
rfract = thisrow / brows;
hue1 = 隨機均勻(.8 * rfract + .3, .8 * rfract + .3);
if( hue1 > 1, hue1 -= 1 );// 低 h1 環繞
hue2 = hue1 + 隨機均勻 (0, .2);
if( hue2 > 1, hue2 = 1 );// 防止 h2 迴繞
條紋(
Interpolate(fract, 0, 50, 1, 10), // amp1
隨機均勻 ( .1, .4 ), // rep1
隨機均勻(0, 1),//相位
隨機均勻 (0, .2), // rep2
隨機均勻 (0, 1), // 階段 2
thisrow, // 目標行
色調1,
色調2,
5, // 最小增量
隨機整數( 5 + 25 * nfract, 50 + 150 * nfract ) // 最大增量
);
)
);
圖片(100);
等待(0);
img = 新圖像(“rgb”,{紅、綠、藍});
img << 比例( .5 );
img << saveimage( "\VBOXSVR\windowsShare\painter\pics\p" || Right( Char( imageno++ ), 6, "0" ) || ".jpg", "jpg" );
新窗口(“x”,img);