<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Nicht ganz zufälliger Kunstgenerator.Beachten Sie die Verwendung der Matrixindizierung durch die Paint-Funktion, um eine explizite JSL-Schleife zu vermeiden, um eine vertikale Pixellinie mehr oder weniger senkrecht zum Pfad des Pinsels festzulegen.M wählt die Pixel aus und blend1 & blend2 machen die Mitte des breiten Pinselstrichs undurchsichtig und die Ränder transparenter.(Ableger eines anderen Projekts, teilweise inspiriert von Dynamische Bilderzeugung mit Python – SWHarden.com .)
FactoryArt - YouTube

Window( "x" ) << closewindow;
Skala = 4;
Brauen = 1080 * Skala;
bcols = 1920 * Skala;
rot = J (Brauen, bcols, 0);
Grün = J (Brauen, Bcols, 0);
blau = J (Brauen, bcols, 0);
Bildnummer = 0;
paint = Function( {Zeile, Spalte, Farbe, Drow},
{m = Max( 1, Min( Brows, Row - Drow ) ) :: Min( Brows, Max( 1, Row + Drow ) ), r, g, b, blend1 = ((1 :: Max( 1, Floor ( N Spalten ( m ) / 2 ) ))
|| Wenn ( N Spalten ( m ) > 1,
(Obergrenze( N Cols( m ) / 2 ) :: 1),
[]
))` / Ceiling( N Cols( m ) / 2 ), blend2 = 1 - blend1},
{r, g, b} = Farbe zu RGB (Farbe);
Versuchen(
rot[m, Spalte] = (rot[m, Spalte]
blend2 + r * blend1);
grün[m, Spalte] = (grün[m, Spalte]
blend2 + g * blend1);
blau[m, Spalte] = (blau[m, Spalte]
blend2 + b * blend1);
,
Show( exception_msg, row, col, r, blend1, blend2, drow, m);
Halt();
);
);
stripe = Function( {amp1, reps1, phase1, reps2, phase2, row, h1, h2, mindr, maxdr},
{ic, ir, frakt, dr, farbe},
Wiederholungen1 * = 2 * Pi ();
Wiederholungen2 *= 2 * Pi();
Phase1 *= 2 * Pi();
Phase2 *= 2 * Pi();
amp1 *= Skala;
mindr *= Skala;
maxdr *= Skala;
For( ic = 1, ic <= bcols, ic++,
frakt = ic / bcols;
ir = row + 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);
malen (ir, ic, Farbe, dr);
Wenn ( Mod ( ic, 512 ) == 0,
Warte( .01 );
img = New Image( "rgb", {rot, grün, blau} );
img << scale( .5 );
img << saveimage( "\VBOXSVR\windowsShare\painter\pics\p" || Right( Char( imageno++ ), 6, "0" ) || ".jpg", "jpg" );
);
);
);
Bild = Funktion ({nstripes},
{Streifen, Fraktur, Farbton1, Farbton2},
For( isttripe = 1, istripe <= nstripes, istripe++,
Show( isttripe );
Fract = isttripe / nstripes;
nfract = 1 - Fraktur;
thisrow = Random Integer (Augenbrauen / 200, Augenbrauen - Augenbrauen / 200 );
rfract = thisrow / brauen;
hue1 = Random Uniform (.8 * rfract + .3, .8 * rfract + .3 );
If( hue1 > 1, hue1 -= 1 );// Alow h1 Wrap-Around
hue2 = hue1 + Random Uniform( 0, .2 );
If( hue2 > 1, hue2 = 1 );// Umbruch für h2 verhindern
Streifen(
Interpolieren (frakt, 0, 50, 1, 10), // amp1
Random Uniform( .1, .4 ), // rep1
Random Uniform( 0, 1 ), //Phase
Random Uniform( 0, .2 ), // rep2
Random Uniform( 0, 1 ), // phase2
thisrow, // Zielzeile
Farbton1,
Farbton2,
5, // Min. Delta
Zufällige Ganzzahl (5 + 25 * nfract, 50 + 150 * nfract ) // max. Delta
);
)
);
Bild ( 100 );
Warte( 0 );
img = New Image( "rgb", {rot, grün, blau} );
img << scale( .5 );
img << saveimage( "\VBOXSVR\windowsShare\painter\pics\p" || Right( Char( imageno++ ), 6, "0" ) || ".jpg", "jpg" );
Neues Fenster( "x", img );