Wow that's a big difference! Thanks for the suggestion. The thing that's slowing down my program is sub _moveterm from this cool module Ham::WorldMap which draws the day/night regions on a world map:
# _moveterm(wtab, noon, width, height) - update illuminated portion of + the globe. sub _moveterm { my ($wtab, $noon, $width, $height) = @_; my $illumMap = Imager->new(ysize => $height, xsize => $width); $illumMap = $illumMap->convert(preset => 'addalpha'); my $day = Imager::Color->new(255, 255, 255, 10); my ($i, $j, $oh, $nl, $nh); for ($i = 0; $i < $height; $i++) { if ($wtab->[$i] >= 0) { $nl = (($noon - ($wtab->[$i] / 2)) + $width) % $width; $nh = ($nl + $wtab->[$i]) - 1; $oh = ($nh - $nl) + 1; if (($nl + $oh) > $width) { for ($j = $nl; $j < $width; $j++) { $illumMap->setpixel(x => $j, y => $i, color => $da +y); } for ($j = 0; $j < ((($nl + $oh) - $width) + 1); $j++) +{ $illumMap->setpixel(x => $j, y => $i, color => $da +y); } } else { for ($j = $nl; $j < (($nl + $oh) + 1); $j++) { $illumMap->setpixel(x => $j, y => $i, color => $da +y); } } } } return $illumMap; }
In reply to Re^2: Double the speed of Imager->setpixel
by Anonymous Monk
in thread Double the speed of Imager->setpixel
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |