
JMP bietet Farbthemen für viele Zwecke. Jet ist eines der kontinuierlichen chromatischen Themen. Es ist nicht die richtige Wahl für die Höhe im obigen Diagramm, da Jet versucht, alle Farben zu verwenden, anstatt die Farben von klein nach groß zuzuordnen (ein Schema aus dem Abschnitt „Sequentiell“ könnte besser funktionieren). Es sieht hübsch aus, aber die kleinsten und größten Werte sind ziemlich dunkel.
You can find these themes in Prefs (ctrl-K) -> Graphs, click on the themes to change them.You can find these themes in Prefs (ctrl-K) -> Graphs, click on the themes to change them.Sie finden diese Themen unter „Einstellungen“ (Strg+K) -> „Diagramme“. Klicken Sie auf die Themen, um sie zu ändern.
Ich habe für dieses Video Jet gewählt, weil es in der Mitte der Skala eine helle Linie erzeugt.
Zoomed 5X to see the sharp transition.Zoomed 5X to see the sharp transition.5-fach gezoomt, um den scharfen Übergang zu sehen.
Hier ist die JSL. Es werden lediglich durchschnittlich 9 Pixel verwendet, um die nächste Farbe zu erhalten. Das Endergebnis besteht darin, geradere Linien zwischen den Regionen zu bevorzugen.
nr = 1080 + 16; // the 16 border is trimmed when the video is made in blender
nc = 1920 + 16; // because the flicker from blue to red to blue is distracting
board = J( nr, nc, Random Uniform( -1, 1 ) ); // only the initial bitmap is random
ww = New Window( "view", img = New Image( Heat Color( (board + 1) / 2, <<"jet" ) ) );
// jet produces the colors from 0 to 1, our bitmap is -1 to 1
dir = "$desktop/heatpic/"; // keep pictures for blender to make into a video
ipic = 1000000; // the picture name is all numeric with a leading 1
For( i = 1, i < 100000, i += 1,
img << setpixels( Heat Color( (board + 1) / 2, <<"jet" ) );
Show( i, i / 100000 );
ww << inval << updatewindow;
Wait( .0 );
img << Save Image( dir || Char( ipic += 1 ) || ".jpg", "jpg" );
background = If( Sum( board ) > 0, -1, 1 ); // keep the red/blue ratio balanced with the border color
step = Ceiling( i / 10000 ) + 3; // speed up the animation towards the end
For( jstep = 1, jstep <= step, jstep += 1,
Parallel Assign(
{
p = .95, // slight extra push away from 0 -- .1^.95 -> .11
L = .999, // regions close to 1 or -1 flip
z = 2.35, // flip value; more than this is unstable
// add padding with background color
prev = J( nr + 2, 1, background ) || (J( 1, nc, background ) |/ board |/ J( 1, nc, background )) || J( nr + 2, 1, background )
},
board[r, c] = (
x = prev[r :: r + 2, c :: c + 2] ; // depends on padding
v = Sum( x ) / 9 ; // each pixel is the average of the 9 pixel square
If( // but...
v < -L, z, // full negative flips to positive
v < 0, -(-v) ^ p, // tweak the average with
v < L, v ^ p, // a push away from zero
-z // full positive flips to negative
)
)
)
);
);
Ich habe die JSL-Schleife nach ~28.000 Frames gestoppt; sie ist lang genug und die Änderungsrate war zu niedrig, um interessant zu sein, selbst bei zunehmender Schrittgröße.
Zelluläre Automaten in JMP! Sehr schön.