Symmetry in motion project
The symmetry in motion project was a project in math in which we programmed using a programming language called StarLogo.
StarLogo is a simplified and visual programming language that can make an agent move in a certain way inside a certain area known as Spaceland. We used StarLogo in order to learn more about the math of translation, rotation, and reflections.(which is ironic because I am doing a reflection on reflections) We programmed an agent to produce a kaleidoscope based off a master sector. All the shapes in this master sector were translated to other sectors. For example, I used an 8 sector design. My master sector was translated into 8 sectors.
In order to complete my StarLogo file, I used a lot of programming variables and coordinate restraints. I used coordinate restraints in order to tell my agent when to turn
That is the code ahead for a triangle. You can see there are 3 different if tests. These if tests describe to the agent when it needs to turn to face a different direction to complete the rest of the triangle. You can see, all the restraints I have for each individual if statement I have. For example, for the first if statement, I test that x is between 9.5-10.5 and the y is inbetween 4.5-5.5. This means my feasible region would be around the point (10,5). This means that if the agent got to that point, it would turn towards the point, (26,5) the next vertex of the triangle.
In order to reflect my shapes into every single sector of my given work area(Spaceland) I saw how coordinates changed when they were reflected across each sector. Based off that, I would make that individual agent change it's coordinates based off how the original agent in the master sector moved.(that way all the agents moved at the same speed, and so they reflected one another)
My kaliedascope displayed symmetry because it reflected across several lines. Each one of the lines that it reflected off of can be considered a "line of symmetry". Therefore each shape that is reflected are in someway symmetrical to one another. Look up at the picture of my StarLogo at the top of the page to see how each shape was reflected
Rigid motion is where you move an object without changing it's size or shape. There are a few different types of rigid motion which include:
- Translation: This can be considered like a slide of a shape. Basically it is just sliding from an original point to another point
- Rotation: When a shape moves around a specific point in space
- Reflection: When an object is flipped over a line of symmetry. In a reflection, each point and it's corresponding point on the other side of the reflection are the same distance from the line of symmetry.
- Translation: This can be considered like a slide of a shape. Basically it is just sliding from an original point to another point
- Rotation: When a shape moves around a specific point in space
- Reflection: When an object is flipped over a line of symmetry. In a reflection, each point and it's corresponding point on the other side of the reflection are the same distance from the line of symmetry.
My design I originally made for my kaleidoscope using a graphing application
During the set up phase of my code
My code after a short period of time while running
Completed code(more cycles will just change the color)
This project was a very hard project for me at first. During the earlier benchmarks of the project, we had little code design challenges of moving agents along a line and ect. A challenge I had during this portion was being able to get used to the programming language. In order to get the code, you have to drag portions out of draws. I found this process very long and tedious. It got me very frustrated, and I could not take it. To overcome it, I found out you can type out the names of the code block and it will show up on your coding canvas. Another challenge I had during this project was simplifying my code. It was very complex and if I would have kept my code the same, my kaleidoscope would be extremely glitchy. To overcome this, I came up with ways to simplify my code
I also had many successes during this project. One of them was finally completing my kaleidoscope. I found this a huge success because at the end of the day, my final draft looks very good and I am very proud of it. It is good to see that all the time and effort I put into it was all worth it. Another success I had was completely understanding the use of variables in coding. Variables made my code so much simpler and powerful. And now I feel like my programming could become much more masterful in the future because of my understanding for this.