May 2, 2014
For this project I used Racket and the OpenGL library for Racket to generate and render a handful of different fractals. In total I managed to generate three fractals: the Mandelbrot set, a form of the Julia set and a form of the Newton set.
The essence of what a fractal is is recursion and as one would imagine it was used to great effect here. Although the rendered images themselves are static in the number of final recursions their shape and complexity are based off of recursive formulas. Earlier on I did attempt to generate these fractals layer by layer, but I found the process to very taxing to the system and very time consuming. Right now the images are rendered pixel by pixel generating the color of the pixel dependent on where the program is on the x-y plane.
- Recursion: all of the fractals are based on recursion, a great deal of looping was necessary to find the right color for each x-y coordinate
- Global Variables/State Modification: the color generation required global variables to keep track of variables through each successive loop. At the top of each loop these variables where modified based on the values of the variables form the last completed loop.
- Cond is used to select what color to pick based on the current iteration.
- Begin is used in each cond condition to set the rgb for that pixel.
- Do loops are used as for loops to recurse through each x-y coordinate and every rgb possibility.
I made use of the OpenGL library in Racket to render my fractals.
There isn't too much here that is innovative. OpenGL has been used to render fractals many times in the past, however most have done so in languages like C++, which is why the work itself became challenging at times. Much of the work that I did involved taking existing formulas and porting it into Racket.
Technology Used Block Diagram
Personally I found this project to be rather interesting, as I have never done anything like this before. The whole experience gave me a new appreciation for digital media, I mean I'm rendering 2-D images the complexity of 3-D images and 3-D animation must be vast.