COS 126 Recursive Graphics Submissions, Spring 2010


NAME AND DESCRIPTION N = 1 N = 2 N = 3 N = 4 N = 5 N = 6
Anjali Mehrotra

My program uses recursion to generate cubes on the corners of the original cube, with the length of each side of the cube getting smaller with every recursion. I used 3 rhombuses to generate the cubes and used a for loop to run the program backwards so that the largest cube would be outside and the smallest cubes inside so that the different sized cubes could all be seen.
My program uses recursion to generate cubes on the corners of the original cube, with the length of each side of the cube getting smaller with every recursion. I used 3 rhombuses to generate the cubes and used a for loop to run the program backwards so that the largest cube would be outside and the smallest cubes inside so that the different sized cubes could all be seen. My program uses recursion to generate cubes on the corners of the original cube, with the length of each side of the cube getting smaller with every recursion. I used 3 rhombuses to generate the cubes and used a for loop to run the program backwards so that the largest cube would be outside and the smallest cubes inside so that the different sized cubes could all be seen. My program uses recursion to generate cubes on the corners of the original cube, with the length of each side of the cube getting smaller with every recursion. I used 3 rhombuses to generate the cubes and used a for loop to run the program backwards so that the largest cube would be outside and the smallest cubes inside so that the different sized cubes could all be seen. My program uses recursion to generate cubes on the corners of the original cube, with the length of each side of the cube getting smaller with every recursion. I used 3 rhombuses to generate the cubes and used a for loop to run the program backwards so that the largest cube would be outside and the smallest cubes inside so that the different sized cubes could all be seen. My program uses recursion to generate cubes on the corners of the original cube, with the length of each side of the cube getting smaller with every recursion. I used 3 rhombuses to generate the cubes and used a for loop to run the program backwards so that the largest cube would be outside and the smallest cubes inside so that the different sized cubes could all be seen. My program uses recursion to generate cubes on the corners of the original cube, with the length of each side of the cube getting smaller with every recursion. I used 3 rhombuses to generate the cubes and used a for loop to run the program backwards so that the largest cube would be outside and the smallest cubes inside so that the different sized cubes could all be seen.
Devon Chen

I created a breaking heart by first drawing a heart, then by drawing 3 lines to make a branching crack, and then recursing the the left an right branching cracks, but at different shrinking rates, so that one side would shrink faster than the other and the final result wouldn't be symmetrical and broom-looking, but rather, slanting one way. I also made the thickness of the cracks shrink with each recursion, so that cracks at the top would look wider than cracks at the bottom.
I created a breaking heart by first drawing a heart, then by drawing 3 lines to make a branching crack, and then recursing the the left an right branching cracks, but at different shrinking rates, so that one side would shrink faster than the other and the final result wouldn't be symmetrical and broom-looking, but rather, slanting one way.  I also made the thickness of the cracks shrink with each recursion, so that cracks at the top would look wider than cracks at the bottom. I created a breaking heart by first drawing a heart, then by drawing 3 lines to make a branching crack, and then recursing the the left an right branching cracks, but at different shrinking rates, so that one side would shrink faster than the other and the final result wouldn't be symmetrical and broom-looking, but rather, slanting one way.  I also made the thickness of the cracks shrink with each recursion, so that cracks at the top would look wider than cracks at the bottom. I created a breaking heart by first drawing a heart, then by drawing 3 lines to make a branching crack, and then recursing the the left an right branching cracks, but at different shrinking rates, so that one side would shrink faster than the other and the final result wouldn't be symmetrical and broom-looking, but rather, slanting one way.  I also made the thickness of the cracks shrink with each recursion, so that cracks at the top would look wider than cracks at the bottom. I created a breaking heart by first drawing a heart, then by drawing 3 lines to make a branching crack, and then recursing the the left an right branching cracks, but at different shrinking rates, so that one side would shrink faster than the other and the final result wouldn't be symmetrical and broom-looking, but rather, slanting one way.  I also made the thickness of the cracks shrink with each recursion, so that cracks at the top would look wider than cracks at the bottom. I created a breaking heart by first drawing a heart, then by drawing 3 lines to make a branching crack, and then recursing the the left an right branching cracks, but at different shrinking rates, so that one side would shrink faster than the other and the final result wouldn't be symmetrical and broom-looking, but rather, slanting one way.  I also made the thickness of the cracks shrink with each recursion, so that cracks at the top would look wider than cracks at the bottom. I created a breaking heart by first drawing a heart, then by drawing 3 lines to make a branching crack, and then recursing the the left an right branching cracks, but at different shrinking rates, so that one side would shrink faster than the other and the final result wouldn't be symmetrical and broom-looking, but rather, slanting one way.  I also made the thickness of the cracks shrink with each recursion, so that cracks at the top would look wider than cracks at the bottom.
James Cunningham

My program creates an NCAA Tournament Bracket. I wrote my program one step at a time, beginning with a function to map the first prong of a bracket on the left (leftBracket) side then doing the same for the bracket on the right (rightBracket). I then wrote two recursive functions (drawRightBracket and drawLeftBracket) that executed the two original functions and called upon itself twice for each n.
My program creates an NCAA Tournament Bracket. I wrote my program one step at a time, beginning with a function to map the first prong of a bracket on the left (leftBracket) side then doing the same for the bracket on the right (rightBracket).  I then wrote two recursive functions (drawRightBracket and drawLeftBracket) that executed the two original functions and called upon itself twice for each n. My program creates an NCAA Tournament Bracket. I wrote my program one step at a time, beginning with a function to map the first prong of a bracket on the left (leftBracket) side then doing the same for the bracket on the right (rightBracket).  I then wrote two recursive functions (drawRightBracket and drawLeftBracket) that executed the two original functions and called upon itself twice for each n. My program creates an NCAA Tournament Bracket. I wrote my program one step at a time, beginning with a function to map the first prong of a bracket on the left (leftBracket) side then doing the same for the bracket on the right (rightBracket).  I then wrote two recursive functions (drawRightBracket and drawLeftBracket) that executed the two original functions and called upon itself twice for each n. My program creates an NCAA Tournament Bracket. I wrote my program one step at a time, beginning with a function to map the first prong of a bracket on the left (leftBracket) side then doing the same for the bracket on the right (rightBracket).  I then wrote two recursive functions (drawRightBracket and drawLeftBracket) that executed the two original functions and called upon itself twice for each n. My program creates an NCAA Tournament Bracket. I wrote my program one step at a time, beginning with a function to map the first prong of a bracket on the left (leftBracket) side then doing the same for the bracket on the right (rightBracket).  I then wrote two recursive functions (drawRightBracket and drawLeftBracket) that executed the two original functions and called upon itself twice for each n. My program creates an NCAA Tournament Bracket. I wrote my program one step at a time, beginning with a function to map the first prong of a bracket on the left (leftBracket) side then doing the same for the bracket on the right (rightBracket).  I then wrote two recursive functions (drawRightBracket and drawLeftBracket) that executed the two original functions and called upon itself twice for each n.
Kavya Desai

I got my inspiration from the art of Piet Mondrian who was a Dutch painter in the 1900s. I decided to create a random work of art that resembled his with boxes, primary colors, black lines, and white spaces.
I got my inspiration from the art of Piet Mondrian who was a Dutch painter in the 1900s.  I decided to create a random work of art that resembled his with boxes, primary colors, black lines, and white spaces. I got my inspiration from the art of Piet Mondrian who was a Dutch painter in the 1900s.  I decided to create a random work of art that resembled his with boxes, primary colors, black lines, and white spaces. I got my inspiration from the art of Piet Mondrian who was a Dutch painter in the 1900s.  I decided to create a random work of art that resembled his with boxes, primary colors, black lines, and white spaces. I got my inspiration from the art of Piet Mondrian who was a Dutch painter in the 1900s.  I decided to create a random work of art that resembled his with boxes, primary colors, black lines, and white spaces. I got my inspiration from the art of Piet Mondrian who was a Dutch painter in the 1900s.  I decided to create a random work of art that resembled his with boxes, primary colors, black lines, and white spaces. I got my inspiration from the art of Piet Mondrian who was a Dutch painter in the 1900s.  I decided to create a random work of art that resembled his with boxes, primary colors, black lines, and white spaces.
Kirsten Parratt

My program draws a flower-like design using circles in varying colors. The color on the depth of recursion so each level looks different.
My program draws a flower-like design using circles in varying colors. The color on the depth of recursion so each level looks different. My program draws a flower-like design using circles in varying colors. The color on the depth of recursion so each level looks different. My program draws a flower-like design using circles in varying colors. The color on the depth of recursion so each level looks different. My program draws a flower-like design using circles in varying colors. The color on the depth of recursion so each level looks different. My program draws a flower-like design using circles in varying colors. The color on the depth of recursion so each level looks different. My program draws a flower-like design using circles in varying colors. The color on the depth of recursion so each level looks different.
Melody Lindsay

My creation is created from a hexagon which is divided up into 3 rhombuses of 3 different shades. The different shading creates the illusion of depth so that the hexagon looks like a cube. The recursion creates 6 more hexagons with their central point at the vertices of the larger hexagon. The end result looks like a structure made from many different sized cubes.
My creation is created from a hexagon which is divided up into 3 rhombuses of 3 different shades.  The different shading creates the illusion of depth so that the hexagon looks like a cube.  The recursion creates 6 more hexagons with their central point at the vertices of the larger hexagon.  The end result looks like a structure made from many different sized cubes. My creation is created from a hexagon which is divided up into 3 rhombuses of 3 different shades.  The different shading creates the illusion of depth so that the hexagon looks like a cube.  The recursion creates 6 more hexagons with their central point at the vertices of the larger hexagon.  The end result looks like a structure made from many different sized cubes. My creation is created from a hexagon which is divided up into 3 rhombuses of 3 different shades.  The different shading creates the illusion of depth so that the hexagon looks like a cube.  The recursion creates 6 more hexagons with their central point at the vertices of the larger hexagon.  The end result looks like a structure made from many different sized cubes. My creation is created from a hexagon which is divided up into 3 rhombuses of 3 different shades.  The different shading creates the illusion of depth so that the hexagon looks like a cube.  The recursion creates 6 more hexagons with their central point at the vertices of the larger hexagon.  The end result looks like a structure made from many different sized cubes. My creation is created from a hexagon which is divided up into 3 rhombuses of 3 different shades.  The different shading creates the illusion of depth so that the hexagon looks like a cube.  The recursion creates 6 more hexagons with their central point at the vertices of the larger hexagon.  The end result looks like a structure made from many different sized cubes. My creation is created from a hexagon which is divided up into 3 rhombuses of 3 different shades.  The different shading creates the illusion of depth so that the hexagon looks like a cube.  The recursion creates 6 more hexagons with their central point at the vertices of the larger hexagon.  The end result looks like a structure made from many different sized cubes.
Rafael Grinberg

The Human Pyramid draws a randomly colored guy with outstreched hands and feet, and repeates recursively, drawing one smaller guy on each hand and foot, and then one even smaller on each of their hands and feet, etc., N times.
<em>The Human Pyramid</em> draws a randomly colored guy with outstreched hands and feet, and repeates recursively, drawing one smaller guy on each hand and foot, and then one even smaller on each of their hands and feet, etc., N times. <em>The Human Pyramid</em> draws a randomly colored guy with outstreched hands and feet, and repeates recursively, drawing one smaller guy on each hand and foot, and then one even smaller on each of their hands and feet, etc., N times. <em>The Human Pyramid</em> draws a randomly colored guy with outstreched hands and feet, and repeates recursively, drawing one smaller guy on each hand and foot, and then one even smaller on each of their hands and feet, etc., N times. <em>The Human Pyramid</em> draws a randomly colored guy with outstreched hands and feet, and repeates recursively, drawing one smaller guy on each hand and foot, and then one even smaller on each of their hands and feet, etc., N times. <em>The Human Pyramid</em> draws a randomly colored guy with outstreched hands and feet, and repeates recursively, drawing one smaller guy on each hand and foot, and then one even smaller on each of their hands and feet, etc., N times. <em>The Human Pyramid</em> draws a randomly colored guy with outstreched hands and feet, and repeates recursively, drawing one smaller guy on each hand and foot, and then one even smaller on each of their hands and feet, etc., N times.
Sarah Trebat-Leder

I was inspired by the Koch snowflake. I made 4 different recursive functions, one for each side of the square, and within each figured out what the coordinates would be separately for each of the 3 possible orientations of the triangle. Then I compared the formulas and consolidated into one function. After I got this recursion working, I decided to add another one which would create nested squares, each with one less level of recursion.
I was inspired by the Koch snowflake. I made 4 different recursive functions, one for each side of the square, and within each figured out what the coordinates would be separately for  each of the 3 possible orientations of the triangle. Then I compared the formulas and consolidated into one function. After I got this recursion working, I decided to add another one which would create nested squares, each with one less level of recursion. I was inspired by the Koch snowflake. I made 4 different recursive functions, one for each side of the square, and within each figured out what the coordinates would be separately for  each of the 3 possible orientations of the triangle. Then I compared the formulas and consolidated into one function. After I got this recursion working, I decided to add another one which would create nested squares, each with one less level of recursion. I was inspired by the Koch snowflake. I made 4 different recursive functions, one for each side of the square, and within each figured out what the coordinates would be separately for  each of the 3 possible orientations of the triangle. Then I compared the formulas and consolidated into one function. After I got this recursion working, I decided to add another one which would create nested squares, each with one less level of recursion. I was inspired by the Koch snowflake. I made 4 different recursive functions, one for each side of the square, and within each figured out what the coordinates would be separately for  each of the 3 possible orientations of the triangle. Then I compared the formulas and consolidated into one function. After I got this recursion working, I decided to add another one which would create nested squares, each with one less level of recursion. I was inspired by the Koch snowflake. I made 4 different recursive functions, one for each side of the square, and within each figured out what the coordinates would be separately for  each of the 3 possible orientations of the triangle. Then I compared the formulas and consolidated into one function. After I got this recursion working, I decided to add another one which would create nested squares, each with one less level of recursion. I was inspired by the Koch snowflake. I made 4 different recursive functions, one for each side of the square, and within each figured out what the coordinates would be separately for  each of the 3 possible orientations of the triangle. Then I compared the formulas and consolidated into one function. After I got this recursion working, I decided to add another one which would create nested squares, each with one less level of recursion.
Travis Perlee

Quadratic 3D Koch surface. Start with a cube. Put a cube on every surface of that cube once, and recur.
Quadratic 3D Koch surface. Start with a cube.  Put a cube on every surface of that cube once, and recur. Quadratic 3D Koch surface. Start with a cube.  Put a cube on every surface of that cube once, and recur. Quadratic 3D Koch surface. Start with a cube.  Put a cube on every surface of that cube once, and recur. Quadratic 3D Koch surface. Start with a cube.  Put a cube on every surface of that cube once, and recur. Quadratic 3D Koch surface. Start with a cube.  Put a cube on every surface of that cube once, and recur. Quadratic 3D Koch surface. Start with a cube.  Put a cube on every surface of that cube once, and recur.
Wesley Loo

I combined the Koch Snowflake and Anti-Snowflake. My first expectation was a simple superposition of the snowflake and anti-snowflake, but the way I wrote the program produces something much closer to the idealized snowflake than a simple superposition. For each line segment, I produce six new line segments (essentially the original line segment with equilateral triangles on either side) with a fractal dimension of 1.63. This means 6 new line segments on which to run the same motif.
I combined the Koch Snowflake and Anti-Snowflake. My first expectation was a simple superposition of the snowflake and anti-snowflake, but the way I wrote the program produces something much closer to the idealized snowflake than a simple superposition.  For each line segment, I produce six new line segments (essentially the original line segment with equilateral triangles on either side) with a fractal dimension of 1.63.  This means 6 new line segments on which to run the same motif. I combined the Koch Snowflake and Anti-Snowflake. My first expectation was a simple superposition of the snowflake and anti-snowflake, but the way I wrote the program produces something much closer to the idealized snowflake than a simple superposition.  For each line segment, I produce six new line segments (essentially the original line segment with equilateral triangles on either side) with a fractal dimension of 1.63.  This means 6 new line segments on which to run the same motif. I combined the Koch Snowflake and Anti-Snowflake. My first expectation was a simple superposition of the snowflake and anti-snowflake, but the way I wrote the program produces something much closer to the idealized snowflake than a simple superposition.  For each line segment, I produce six new line segments (essentially the original line segment with equilateral triangles on either side) with a fractal dimension of 1.63.  This means 6 new line segments on which to run the same motif. I combined the Koch Snowflake and Anti-Snowflake. My first expectation was a simple superposition of the snowflake and anti-snowflake, but the way I wrote the program produces something much closer to the idealized snowflake than a simple superposition.  For each line segment, I produce six new line segments (essentially the original line segment with equilateral triangles on either side) with a fractal dimension of 1.63.  This means 6 new line segments on which to run the same motif. I combined the Koch Snowflake and Anti-Snowflake. My first expectation was a simple superposition of the snowflake and anti-snowflake, but the way I wrote the program produces something much closer to the idealized snowflake than a simple superposition.  For each line segment, I produce six new line segments (essentially the original line segment with equilateral triangles on either side) with a fractal dimension of 1.63.  This means 6 new line segments on which to run the same motif. I combined the Koch Snowflake and Anti-Snowflake. My first expectation was a simple superposition of the snowflake and anti-snowflake, but the way I wrote the program produces something much closer to the idealized snowflake than a simple superposition.  For each line segment, I produce six new line segments (essentially the original line segment with equilateral triangles on either side) with a fractal dimension of 1.63.  This means 6 new line segments on which to run the same motif.