<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />무작위가 아닌 아트 생성기.브러시의 경로에 다소 수직인 픽셀의 수직선을 설정하기 위해 명시적 JSL 루프를 피하기 위해 페인트 함수가 매트릭스 인덱싱을 사용하는 것을 주목하십시오.M은 픽셀을 선택하고 blend1 및 blend2는 넓은 브러시 획의 중심을 불투명하게 만들고 가장자리를 더 투명하게 만듭니다.(부분적으로 영감을 받은 다른 프로젝트의 오프샷 Python을 사용한 동적 이미지 생성 – SWHarden.com .)
FactoryArt - 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, 바닥) ( N 열( m ) / 2 ) ))
|| 만약( N Cols( m ) > 1,
(천장( N Cols( m ) / 2 ) :: 1),
[]
))` / 천장( N Cols( m ) / 2 ), 혼합2 = 1 - 혼합1},
{r, g, b} = RGB(색상)로 색상;
노력하다(
빨강[m, 열] = (빨강[m, 열]
블렌드2 + r * 블렌드1);
녹색[m, 열] = (녹색[m, 열]
블렌드2 + g * 블렌드1);
파란색[m, 열] = (파란색[m, 열]
블렌드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 * 파이();
reps2 *= 2 * 파이();
단계 1 *= 2 * Pi();
2단계 *= 2 * Pi();
amp1 *= 스케일;
마음 *= 규모;
maxdr *= 스케일;
For( ic = 1, ic <= bcols, ic++,
프랙트 = ic / bcols;
ir = 행 + amp1 * Sin( phase1 + reps1 * fract );
dr = 보간( Sin( phase2 + reps2 * fract ), -1, mindr, 1, maxdr );
색상 = HLS 색상( 보간( fract, 0, h1, 1, h2 ), .5, 1 );
페인트( ir, ic, 색상, dr );
If( Mod( ic, 512 ) == 0,
대기( .01 );
img = 새 이미지( "rgb", {빨간색, 녹색, 파란색} );
img << 스케일( .5 );
img << saveimage( "\VBOXSVR\windowsShare\painter\pics\p" || 오른쪽( Char( imageno++ ), 6, "0" ) || ".jpg", "jpg" );
);
);
);
사진 = 함수({nstripes},
{istripe, fract, 색조1, 색조2},
For( istripe = 1, istripe <= nstripes, istripe++,
표시( 이스트라이프 );
fract = istripe / nstripes;
nfract = 1 - 프랙트;
thisrow = 임의의 정수(brows / 200, brows - brows / 200);
rfract = thisrow/brows;
색조1 = 무작위 균일( .8 * rfract + .3, .8 * rfract + .3 );
If(hue1 > 1,hue1 -= 1 );// h1 줄바꿈
색조2 = 색조1 + 임의 균일( 0, .2 );
If(hue2 > 1,hue2 = 1);// h2에 대한 랩 어라운드 방지
줄무늬(
보간( 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" || 오른쪽( Char( imageno++ ), 6, "0" ) || ".jpg", "jpg" );
새 창( "x", img );