13ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#!/usr/bin/perl 23ed852eea50f9d4cd633efb8c2b054b8e33c253cristy# 33ed852eea50f9d4cd633efb8c2b054b8e33c253cristy# Example of using a lsys fractal, 43ed852eea50f9d4cd633efb8c2b054b8e33c253cristy# which in turm used Turtle Graphics 53ed852eea50f9d4cd633efb8c2b054b8e33c253cristy# 63ed852eea50f9d4cd633efb8c2b054b8e33c253cristyrequire "lsys.pl"; 73ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 83ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%rule = ( 93ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 'A' => 'S[---LMA][++++B]', 103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 'B' => 'S[++LBg][--Cg]', 113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 'C' => 'S[-----LB]GS[+MC]', 123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 'g' => '', 133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 'L' => '[{S+S+S+S+S+S}]' 143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ); 153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%stemchanges = ( 173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy distance => 18.5, 183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy dtheta => 0.1, 193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy motionsub => sub{ 203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy $im->Draw ( primitive=>'line', points=>join(' ',@_), 213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy stroke=>'dark green', strokewidth=>1 ); 223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy); 243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%polychanges = ( 263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy distance => 3, 273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy dtheta => 0.4, 283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy motionsub => sub{ push( @poly, @_[0..1] ); } 293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy); 303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy$changes = \%stemchanges; 323ed852eea50f9d4cd633efb8c2b054b8e33c253cristylsys_init(400); 333ed852eea50f9d4cd633efb8c2b054b8e33c253cristylsys_execute('A', 10, "tree.gif", %rule); 34