
JMP 的顏色主題有很多用途。 Jet 是連續色度主題之一。它不適合用於上圖中的高度,因為 Jet 試圖使用所有顏色,而不是嘗試以從矮到高的方式分配顏色(順序部分的方案可能效果更好)。它看起來很漂亮,但最小值和最大值的顏色很暗。
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.您可以在首選項 (ctrl-K) -> 圖表中找到這些主題,點擊主題即可更改它們。
我為這個影片選擇了 Jet,因為它在刻度中心形成了一條明亮的線。
Zoomed 5X to see the sharp transition.Zoomed 5X to see the sharp transition.放大 5 倍即可看到急劇的轉變。
這是 JSL。它只是使用 9 個像素的平均值來獲取下一種顏色;最終結果是區域之間更喜歡直線。
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
)
)
)
);
);
我在約 28K 幀後停止了 JSL 循環;它足夠長,而且變化率太低,即使步長增加也不會引起興趣。