20 lines
453 B
Perl
20 lines
453 B
Perl
use Imager;
|
|
|
|
sub plasma {
|
|
my ($w, $h) = @_;
|
|
|
|
my $img = Imager->new(xsize => $w, ysize => $h);
|
|
|
|
for my $x (0 .. $w-1) {
|
|
for my $y (0 .. $h-1) {
|
|
my $hue = 4 + sin($x/19) + sin($y/9) + sin(($x+$y)/25) + sin(sqrt($x**2 + $y**2)/8);
|
|
$img->setpixel(x => $x, y => $y, color => {hsv => [360 * $hue / 8, 1, 1]});
|
|
}
|
|
}
|
|
|
|
return $img;
|
|
}
|
|
|
|
my $img = plasma(400, 400);
|
|
$img->write(file => 'plasma-perl.png');
|