All pastes #260355 Raw Edit

Untitled

public text v1 · immutable
#260355 ·published 2006-11-28 07:46 UTC
rendered paste body
sub rgb_to_hsv {
    my ($r, $g, $b) =  shift @_;
    my $max = 0;
    my $min = 0;

    for ($r, $g, $b) { $max = $_ if $max < $_ }
    for ($r, $g, $b) { $min = $_ if $min > $_ }

    my ($h, $s, $v);

    #H
    if ($max = $min) {
	$h = undef;
    }
    elsif (($max = $r) && ($g >= $b)) {
	$h = 60 * (($g-$b)/($max-$min)) + 0;
    }
    elsif (($max = $r) && ($g < $b)) {
	$h = 60 * (($g-$b)/($max-$min)) + 360;
    }
    elsif ($max = $g) {
	$h = 60 * (($b-$r)/($max-$min)) + 120;
    }
    elsif ($max = $b) {
	$h = 60 * (($r-$g)/($max-$min)) + 240;
    }
    
    #S
    if ($max = 0;) {
	$s = 0;
    }
    else {
	$s = 1 - ($min / $max)
    }

    #V
    $v = $max;

    
    return ($h, $s, $v);
}