ProShell v2.0
Dashboard
Server Info
Server: 127.0.0.80
PHP: 8.3.31
home
clients
08ce2314c3c7e396ea36e41d2a860c5e
sites
filmerletravail.org
wp-content
mu-plugins
2026-08-14 14:13:53
Editing: lsys.pl
Cancel
Save Changes
#!/usr/bin/perl # Written by jreed@itis.com, adapted by Cristy. use Image::Magick; use Turtle; sub flower { my $flower = shift; my ($width, $height) = $flower->Get('width', 'height'); my ($x, $y) = $turtle->state(); my ($geometry); $geometry = '+' . int($x-$width/2) . '+' . int($y-$height/2); $im->Composite(image=>$flower, compose=>'over', geometry=>$geometry); } sub lsys_init { my ($imagesize) = @_; %translate = ( 'S' => sub{ # Step forward $turtle->forward($changes->{"distance"}, $changes->{"motionsub"}); }, '-' => sub{ $turtle->turn(-$changes->{"dtheta"}); }, # counter-clockwise '+' => sub{ $turtle->turn($changes->{"dtheta"}); }, # Turn clockwise 'M' => sub{ $turtle->mirror(); }, # Mirror '[' => sub{ push(@statestack, [$turtle->state()]); }, # Begin branch ']' => sub{ $turtle->setstate(@{pop(@statestack)}); }, # End branch '{' => sub{ @poly = (); $changes=\%polychanges; }, # Begin polygon '}' => sub{ # End polygon $im->Draw (primitive=>'Polygon', points=>join(' ',@poly), fill=>'light green'); $changes = \%stemchanges; }, 'f' => sub{ flower($pink_flower); }, # Flower 'g' => sub{ flower($red_flower); }, # Flower 'h' => sub{ flower($yellow_flower); } # Flower ); # Create the main image $im = new Image::Magick; $im->Set(size=>$imagesize . 'x' . $imagesize); $im->Read('xc:white'); # Create the flower images $pink_flower = new Image::Magick; $pink_flower->Read('pink-flower.gif'); $red_flower = new Image::Magick; $red_flower->Read('red-flower.gif'); $yellow_flower = new Image::Magick; $yellow_flower->Read('yellow-flower.gif'); # Turtle: the midpoint of the bottom edge of the image, pointing up. $turtle=new Turtle($imagesize/2, $imagesize, 0, 1); } sub lsys_execute { my ($string, $repetitions, $filename, %rule) = @_; my ($command); # Apply the %rule to $string, $repetitions times. for (1..$repetitions) { $string =~ s/./defined ($rule{$&}) ? $rule{$&} : $&/eg; } foreach $command (split(//, $string)) { if ($translate{$command}) { &{$translate{$command}}(); } } $im->Write($filename); $im->Write('win:'); } 1;
Upload Files
Cancel
Upload
Create New
Cancel
Create
Change Permissions
Cancel
Save
Change Date
Cancel
Save
Rename Item
Cancel
Save
Confirm Delete
Are you sure you want to delete the selected items?
Cancel
Delete