Wawa666
Geocacher
hab da noch ein kleines problem und zwar bei der finddistance.incl wird die funktion:
aufgerufen
aber seit ein paar male schon liefert diese dann einen wert der zu folgendem ungültigen eintrag fürt :
woran kann das liegen wie kann ich das verhindern?
Code:
statcolor_red_yellow_green($distanceCount[$i],0,$maxCount)
aber seit ein paar male schon liefert diese dann einen wert der zu folgendem ungültigen eintrag fürt :
Code:
background: #ff10000;
Code:
sub statcolor_red_yellow_green
{
my $value = shift; die unless (defined $value);
my $min = shift; die unless (defined $min);
my $max = shift; die unless (defined $max);
my $from = "ff0000";
my $to = "00ff00";
my $over = "ffff00";
($max,$min) = ($min,$max) if ($max < $min);
$min+=0.01 if ($min == $max);
$value = ($value>$max?$max:($value<$min?$min:$value));
my @from = ($from =~ /^(..)(..)(..)$/);
my @to = ($to =~ /^(..)(..)(..)$/);
my @over = ($over =~ /^(..)(..)(..)$/);
@from = map{hex($_)}(@from);
@to = map{hex($_)}(@to);
@over = map{hex($_)}(@over);
my $value_percent = ($value - $min)/($max - $min)*100;
my $r = $from[0]+($to[0]-$from[0])*($value-$min)/($max-$min+.0);
my $g = $from[1]+($to[1]-$from[1])*($value-$min)/($max-$min+.0);
my $b = $from[2]+($to[2]-$from[2])*($value-$min)/($max-$min+.0);
if($value_percent < 51) {
$r = 255;
$g = $value_percent / 50 * 255;
$b = 0;
}
else {
$r = 255 - (($value_percent - 50) / 50 * 255);
$g = 255;
$b = 0;
}
return sprintf("#%02x%02x%02x", $r, $g, $b);
}