For this project, we were learned how to use the 3D turtle. In the lab exercises, we edited our interpreter, shape, and tree files to accept the 3D turtle commands with parameters like pitch, roll, yaw, and a z position.
To complete the task, I first created some shapes. I created a cube, rectangular prism, triangular prism, and a pyramid. To do this, I thought about what turtle commands it would take using x, y, z, pitch, roll, and yaw characters. After creating the shapes just like i did the other 2D shapes, I made a scene testing out each of the shapes and made sure they worked with the other NPR styles. When that was done, it looked like this:
After that, I started to make a scene out of my shapes. To do that, I first set down a green rectangle to resemble the ground. After that, I put a cube over it with a pyramid on top to resemble a house. I also put a rectangle on the bottom to resemble a door. After that, I put a triangular prism next to the house to look like some sort of addition to the house. After that, I placed a blue rectangle behind the house to resemble a pool. Finally, I put a for loop in to draw a bunch of trees to line the back of the yard. When that was finished it looked like this:
For my extension, I made my scene an aggregate shape and put it into its own class. To make that work, I created a class called 3dscene which took x, y, z, and scale parameters. I then edited my scene's calls to the draw method so that they worked with the x, y, z, and scale parameters. When that was finished, I tested it by making 2 versions of the scene. One was smaller and raised to make sure that all the scale parameters worked. When that was finished, it looked like this:
From completing this project, I learned how to use the 3D turtle to make scenes. I also learned how to control the roll, pitch, and yaw for the 3D turtle. In addition, I am now very confident at turning scenes into aggregate shapes that can be used different times with different scales.