
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 循环;它足够长,而且变化率太低,即使步长增加也不会引起兴趣。