my $last_negativ=undef; for(0..$#points_a) { my $y_a=$points_a[$_][1]; my $y_b=$points_b[$_][1]; my $diff=$y_a-$y_b; my $negativ=0; $negativ=1 if($diff<0); if($diff!=0 and ( !defined($last_negativ) or $last_negativ != $negativ ) ) { my $x=$points_a[$_][0]; my $y=int(abs($diff)+$negativ?$y_a:$y_b); do_fill($x,$y,$negativ?$color_a:$color_b); $last_negativ = $negativ; } }