# Pages Jonathan's CS151 Project 7

Overview:

The purpose of this project was to further our understand about L-systems, fractals and trees. In lab, we learned how to make L-systems (a code that uses rules to modify the code, and the code tells the turtle what to do). During this project, we took that code, expanded it and made our own great scenes and images using L-systems.

Task 1: Our first task was to make an abstract scene using different L-systems. In lab we forced our code to take in command line arguments, however we needed everything to be hard coded for the project. Below is what my abstract full of L-systems looks like:

I used one L-system, the one in the top right, four different times in order to make the cool design. I used it four different times in four different colors. The next part of the abstract was made by 2 different L-systems. The first is the one in brown and orange. They are actually two different L-systems (the same code obviously), however I used one right side up and one upside down. This allowed me to have the perfect opening in the middle for another L-system. I used one of our tree L-systems to full the cool space in the middle.
Our next task was to take a given L-system that made trees and create a grid that called the L-system 9 times. Below is what my grid filled with 9 L-system trees looks like:

The last of the 3 tasks asked us to create a scene made up of different L-systems. For this scene, I decided to make an outdoors scene of trees, a pathway and clouds. Because the L-systems do not look exactly like these things, the image takes a little bit of interpretation. However, because of the way the L-systems are strategically placed, the image can be seen. I used one L-system that looks like a tile, and the L-system is my pathway. It stretches along the bottom of the image. My second L-system looks like somewhat of a funky cloud, so I obviously used it as a cloud. Lastly, my third L-system is a tree, and that was used for my many trees. Below if my scene:

Extensions:

For my first extension I enabled my abstract image to be scalable. Using my past scaling ability, I was able to properly scale all of my L-systems within the abstract scene. Below is the final product of what my first extension looks like:

My second extension was adding a scale parameter to my scene.py file. My scene.py file was fun to scale, as my scene looked cool in all different sizes. Again, I used scaling skills that I have learned throughout this semester to scale my scene. Below is what the final product of my second extension looks like:

What I learned: Project 7 turned out to be a very useful project. L-systems are extremely useful and efficient in making images that are not only cool and good looking, but also easy to adjust. Because we can easily change how many times python runs through the L-systems, we can also easily change how big the final L-system is. The way that L-systems are set up makes it very easily accessible and user friendly for all coders to use. Fractals and tress are very cool images that use L-systems, so I now know how to effectively do those as well. All in all, project 7 turned out to be a very fun and useful project.