Here's a snippet from a future project. None of the default color themes do what I want (making numbers at each end black or gray) so I passed a theme definition to heat color for the 2nd argument (instead of the name of a default theme).
colors = Heat Color(
// the first argument is a JSL matrix for efficiency:
(0 :: 800) / 800, // 800 pixels wide, smoothly interpolated by heatcolor
// the second argument is a list that specifies the color theme
{"", // no name or flags needed, just the name placeholder
{ // this theme uses 12 colors
RGB Color( 0, 0, 0 ), // black
HLS Color( 4.0 / 10.0, .3, 1 ), // darken beginning
HLS Color( 5.0 / 10.0, .5, 1 ), //
HLS Color( 6.0 / 10.0, .5, 1 ), //
HLS Color( 7.0 / 10.0, .5, 1 ), //
HLS Color( 8.0 / 10.0, .5, .7 ), // desaturate magenta
HLS Color( 9.0 / 10.0, .5, 1 ), //
HLS Color( 0.0 / 10.0, .5, 1 ), //
HLS Color( 1.0 / 10.0, .5, 1 ), //
HLS Color( 2.0 / 10.0, .5, 1 ), //
HLS Color( 3.0 / 10.0, .3, 1 ), // darken ending
RGB Color( .5, .5, .5 ) // gray
},
// this theme positions the 12 colors between 0 and 1, inset from the ends
As List( (1 :: 12) / 13 )[1] // positions 1/13 ... 12/13
}
);
For( i = 1, i <= 8, i++, // double the height several times
colors = colors |/ colors
);
pic = New Image( colors ); // matrix to image
New Window( "Demo Heat Color", pic ); // display
Showing the wash of color from Left to Right matching the color theme specification
Here's another approach.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.