# Pages CS 151 Computational Thinking Fall 2012 Project 7

The task was to use L-systems to create trees, and fractals. We had to use the interpreter and l-system files to create an outdoor scene, a 3x3 grid of trees, and a page with a fractal and tree.

The scene1() function makes a fractal and a tree. This is the code used throughout the scene.py file:
turtle.tracer(False)
lsys = lsystem.createFromFile( 'systemA.txt' )
fracstr = lsystem.buildString( lsys, 4 )
interpreter.place( -50, 100, 0 )
interpreter.drawString( fracstr, 5, 90 )
I had to create the file, then call buildString to form the tree. Then I had to place the tree and finally use drawString to draw the tree.
Scene 1:

In the scene2() function I used a loop to build the 3x3 grid for the trees. The loop has two range functions, and I had to create lists that the loop can access to know the location and angles of the trees. The lists look like this:
xpos = [ -200, 0, 200 ]
ypos = [ 150, 0, -150 ]
angles = [ 22.5, 45, 60 ]
The loop looks like:
for row in range(3):
for col in range(3):
interpreter.place( xposcol, yposrow, 90 )
tstr = lsystem.buildString( lsys, col+1 )
interpreter.drawString( tstr, 5, anglesrow )
Scene 2:

The final task was to make the scene3() function to make a simple outdoor scene. I used the same type of code as scene1(), but added color to the trees and also made the trees different styles with different angles.
Scene 3:

The problems I had were placing the trees and making sure they were going in the right direction and had the right orientation.

The extension I did were to add berries to the trees by adding an elif statement in my interpreter.py file. The berries can be seen in scene 3 on the left and right trees. The other extension I did was to create my own L-system and I created a pattern of boxes with circles connected. I experimented with making different kinds of fractals. My favorite is:

By doing this project I learned how to use L-systems. I learned how to write my own L-system or to add new letters to that L-system. I learned how to build and draw the strings by importing from the interpreter file and I learned how to use loops and lists together.

Labels
• No labels