proc colorscale_jet { } { display update off set mincolorid [expr [colorinfo num] - 1] set maxcolorid [expr [colorinfo max] - 1] set colrange [expr $maxcolorid - $mincolorid] set colhalf [expr $colrange / 2] for {set i $mincolorid} {$i < $maxcolorid} {incr i} { set x [expr ($i - $mincolorid) / double($colrange)] set r 0.0; if {$x >= 3.0/8.0 && $x < 5.0/8.0} { set r [expr 4.0 * $x - 3.0/2.0]; } elseif {$x >= 5.0/8.0 && $x < 7.0/8.0} { set r 1.0; } elseif {$x >= 7.0/8.0} { set r [expr -4.0 * $x + 9.0/2.0]; } set g 0.0; if {$x >= 1.0/8.0 && $x < 3.0/8.0} { set g [expr 4.0 * $x - 1.0/2.0]; } elseif {$x >= 3.0/8.0 && $x < 5.0/8.0} { set g 1.0; } elseif {$x >= 5.0/8.0 && $x < 7.0/8.0} { set g [expr -4.0 * $x + 7.0/2.0]; } set b 0.0; if {$x < 1.0/8.0} { set b [expr 4.0 * $x + 1.0/2.0]; } elseif {$x >= 1.0/8.0 && $x < 3.0/8.0} { set b 1.0; } elseif {$x >= 3.0/8.0 && $x < 5.0/8.0} { set b [expr -4.0 * $x + 5.0/2.0]; } color change rgb $i $r $g $b } display update ui display update on }