James Murphy McCaleb

CS 293 – Mathematical Graphics

Spring 2003


The first program we looked at dealt with the conditions under which chaotic results would appear in a two dimensional graph: chaos.cpp


Next, we experimented with the mechanics of creating a fractal known as the Sierpinksi gasket in C++: gasket.cpp


Our investigation of the Lorenz attractor and butterfly focused on this program, which was our first opportunity to deal with 3-dimensional graphs (using binocular vision): lorenz.cpp


We investigated the construction of iterated fractal systems using various programs, including turtle.cpp, which uses a system like the old “Logo” programs to draw fractals, and fracs.cpp, which draws the fractals in a more conventional manner.


The program that we examined, which I later evolved and tweaked to become my final project, was that of a 3-dimensional torus spinning around in space.  First, I made the torus become wavy, so that it was not a perfect tube all the way around.  It had five bumps on it, looking like a star.  Then, I created two more torii, and wrote an autotimer that had the three torii progressively get bigger and smaller, and move around the other torii in a manner that when one was large, it was around one that was small.  The overall effect was that the three torii were in a self-contained system that kept looping.  Using 14 of these self-contained systems, I then made a sphere.  In the autotimer function, I then walked the program through the miscellaneous variables that I had allowed the user to control, including the number of bumps on the torii and the actual number of torii in each self-contained system: illiskel.cpp