Making Art With Parametric Equations

I’m sure you’ve seen the Star Trek TNG Episode “Where No One Has Gone Before” where a mysterious traveler aboard the Enterprise helps Wesley learn how to operate the ship’s computer using his intuition. The first time I saw that episode was the moment my love for parametric equations was born.

Parametric equations are a way of defining a mathematical relationship using parameters. The set of coordinates on the curve, x and y, are represented as functions of a variable called t. For example, we describe a parabola as being y=x^2. Using parametric equations, we write: x=t and y=t^2, then we plot (x,y). This may seem confusing at first, but it’s worth learning. For one thing, it’s very useful in computer design because it makes it easier to rotate and scale.

I first came across the idea of parametric art in college, when my professor, Tommy Ratliff, gave us an assignment: first draw a picture, and then recreate that picture using parametric equations. We used the Maple software package, which is essentially the same as Mathematica. I started slowly. I had trouble figuring out which parameters to use and what a curve made of different combinations of equations would look like. However, the more I played with equations, the more I could predict the outcome. The process became intuitive much more quickly than I expected, and I was finally able to create an image of a seated Buddha that is now, sadly, lost to the ages. I have created a host of other images since then, such as this lovely bee.

This brilliant work of art required about 25 parametric equations, but as you can see, many of them were variations on the same equation that I scaled, moved around a bit, or flipped upside down.

If your kid is interested in math, art or programming and you want to get him or her interested in the other two, you can introduce parametric art. There are a few simple steps. First, you will need the proper software. Mathematica is the industry standard, but many choose to use Scilab, the free, open source version of Mathematica. It is available here for download: http://www.scilab.org/products/scilab/download

Once you have downloaded the software, you need to open a file and then you can begin. The first thing you need to do is create a parameter variable, then define some equations based on that variable. In Scilab, it will look like this:

deff(‘[aa]=a(t)’, ‘aa=sin(t)’)
deff(‘[bb]=b(t)’, ‘bb=cos(t)’)
t=[-2:0.1:2];
atac=a(t);
btac=b(t);

Here, t is your parameter and it is generating points between negative 2 and positive two at an interval of 0.1. The equations you are creating, represented as atac and btac, can be combined in a variety of ways to create aspects of an image.

You can create parametric equations and view them by using the plot function, as such:

plot(atac,btac);
plot(-atac,-btac);
The first plot function uses atac as the x variable and btac as the y variable, and creates a semicircle. The second plot function creates a mirror image of the first, and these two functions combined form a circle.

Notice that you can make adjustments to atac and btac to create a variety of different shapes. Indeed, the whole picture (which I have dubbed Queen Elizabeth) was made with five equations: atac, btac, ctac, gtac, and ftac.

 

By making atac or btac negative, by reversing them, by raising them to higher powers, multiplying them, adding to them, etc, I made quite a few different curves of varying shapes and sizes.

Your kids can enjoy playing with the variables in the plot function where they will be able to immediately see the results of their work. If your kid enjoys hands-on learning, as most people do, and enjoys discovering and creating, then parametric art is the perfect introduction to math and computer science.

Below is the complete code used to create the face above. As you can see, I simply defined a few equations, then combined them and manipulated them in a variety of ways.

deff(‘[aa]=a(t)’, ‘aa=sin(t)’)
deff(‘[bb]=b(t)’, ‘bb=cos(t)’)
t=[-2:0.1:2];
atac=a(t);
btac=b(t);
deff(‘[cc]=c(t)’, ‘cc=t^2′)
ctac=c(t);
deff( ‘[ff]=f(t)’, ‘ff=t/2′)
deff(‘[gg]=g(t)’, ‘gg=t’)
gtac=g(t);
ftac=f(t);
//face
plot(atac,btac);
plot(-atac,-btac);
//hair left
plot(ctac/3-2.1,gtac/3);
//hair right
plot(-ctac/3+2.1,gtac/3);
//top of head
plot(gtac/2,-ctac/8 +1.1);
//headdress
plot(gtac/1.5,-ctac/6 +1.2);
//neck wear
plot(-atac,-btac/3-.78);
plot(-1.2*atac,-btac/2-.78);
plot(-2*atac,-btac/1.2-.68);
//eye left
plot(ctac/20-.7,gtac/20+.25);
plot(-ctac/20-.3,gtac/20+.25);
//iris left
plot(atac/20-.5,btac/20+.25);
plot(-atac/20-.5,-btac/20+.25);
//eye right
plot(ctac/20+.3,gtac/20+.25);
plot(-ctac/20+.7,gtac/20+.25);
//iris right
plot(atac/20+.5,btac/20+.25);
plot(-atac/20+.5,-btac/20+.25);
//eyebrow right
//plot(ftac/4+.4,atac/8+.4);
//plot(-ftac/4+.5,atac/40+.4);
//eyebrow left
plot(atac/4-.5,btac/10+.4);

Leave a Comment

Your email address will not be published. Required fields are marked *