Ignore:
Timestamp:
Mar 18, 2009, 2:59:21 PM (16 years ago)
Author:
gah
Message:

preliminary HQ output from molvisviewer; unexpand tabs; all jpeg generation at 100%

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gui/scripts/color.tcl

    r1075 r1342  
    2727    # if frac overflows the value, pass changes along to saturation
    2828    if {$v < 0} {
    29         set s [expr {$s+$v}]
    30         if {$s < 0} { set s 0 }
    31         set v 0
     29        set s [expr {$s+$v}]
     30        if {$s < 0} { set s 0 }
     31        set v 0
    3232    }
    3333    if {$v > 1} {
    34         set s [expr {$s-($v-1)}]
    35         if {$s < 0} { set s 0 }
    36         set v 1
     34        set s [expr {$s-($v-1)}]
     35        if {$s < 0} { set s 0 }
     36        set v 1
    3737    }
    3838
     
    5050    foreach {h s v} [Rappture::color::RGBtoHSV $color] { break }
    5151    if {$v < $min} {
    52         set v $min
     52        set v $min
    5353    }
    5454    return [Rappture::color::HSVtoRGB $h $s $v]
     
    6565    foreach {h s v} [Rappture::color::RGBtoHSV $color] { break }
    6666    if {$v > $max} {
    67         set v $max
     67        set v $max
    6868    }
    6969    return [Rappture::color::HSVtoRGB $h $s $v]
     
    8282    #
    8383    if { [catch {winfo rgb . $color} status] != 0 } {
    84         set s 0
    85         set v 0
    86         set h 0
    87         return [list $h $s $v]
     84        set s 0
     85        set v 0
     86        set h 0
     87        return [list $h $s $v]
    8888    }
    8989    foreach {r g b} $status {}
     
    9898
    9999    if { $delta == 0 } {
    100         # delta=0 => gray color
    101         set s 0
    102         set v [expr {$r/65535.0}]
    103         set h 0
    104         return [list $h $s $v]
     100        # delta=0 => gray color
     101        set s 0
     102        set v [expr {$r/65535.0}]
     103        set h 0
     104        return [list $h $s $v]
    105105    }
    106106 
    107107    if {$max > 0} {
    108         set s [expr {$delta/double($max)}]
    109     } else {
    110         # r=g=b=0  =>  s=0, v undefined
    111         set s 0
    112         set v 0
    113         set h 0
    114         return [list $h $s $v]
     108        set s [expr {$delta/double($max)}]
     109    } else {
     110        # r=g=b=0  =>  s=0, v undefined
     111        set s 0
     112        set v 0
     113        set h 0
     114        return [list $h $s $v]
    115115    }
    116116
    117117    if {$r == $max} {
    118         set h [expr {($g - $b)/double($delta)}]
     118        set h [expr {($g - $b)/double($delta)}]
    119119    } elseif {$g == $max} {
    120         set h [expr {2 + ($b - $r)/double($delta)}]
    121     } else {
    122         set h [expr {4 + ($r - $g)/double($delta)}]
     120        set h [expr {2 + ($b - $r)/double($delta)}]
     121    } else {
     122        set h [expr {4 + ($r - $g)/double($delta)}]
    123123    }
    124124    set h [expr {$h*1.04719756667}] ;# *60 degrees
    125125    if {$h < 0} {
    126         set h [expr {$h+6.2831854}]
     126        set h [expr {$h+6.2831854}]
    127127    }
    128128    return [list $h $s $v]
     
    138138proc Rappture::color::HSVtoRGB {h s v} {
    139139    if {$s == 0} {
    140         set v [expr round(255*$v)]
    141         set r $v
    142         set g $v
    143         set b $v
    144     } else {
    145         if {$h >= 6.28318} {set h [expr $h-6.28318]}
    146         set h [expr $h/1.0472]
    147         set f [expr $h-floor($h)]
    148         set p [expr round(255*$v*(1.0-$s))]
    149         set q [expr round(255*$v*(1.0-$s*$f))]
    150         set t [expr round(255*$v*(1.0-$s*(1.0-$f)))]
    151         set v [expr round(255*$v)]
    152 
    153         switch [expr int($h)] {
    154             0 {set r $v; set g $t; set b $p}
    155             1 {set r $q; set g $v; set b $p}
    156             2 {set r $p; set g $v; set b $t}
    157             3 {set r $p; set g $q; set b $v}
    158             4 {set r $t; set g $p; set b $v}
    159             5 {set r $v; set g $p; set b $q}
    160         }
     140        set v [expr round(255*$v)]
     141        set r $v
     142        set g $v
     143        set b $v
     144    } else {
     145        if {$h >= 6.28318} {set h [expr $h-6.28318]}
     146        set h [expr $h/1.0472]
     147        set f [expr $h-floor($h)]
     148        set p [expr round(255*$v*(1.0-$s))]
     149        set q [expr round(255*$v*(1.0-$s*$f))]
     150        set t [expr round(255*$v*(1.0-$s*(1.0-$f)))]
     151        set v [expr round(255*$v)]
     152
     153        switch [expr int($h)] {
     154            0 {set r $v; set g $t; set b $p}
     155            1 {set r $q; set g $v; set b $p}
     156            2 {set r $p; set g $v; set b $t}
     157            3 {set r $p; set g $q; set b $v}
     158            4 {set r $t; set g $p; set b $v}
     159            5 {set r $v; set g $p; set b $q}
     160        }
    161161    }
    162162    return [format "#%.2x%.2x%.2x" $r $g $b]
Note: See TracChangeset for help on using the changeset viewer.