Curve Drawing Programs

3-D Curves: Executable or Text Version

Draws curves of the form y = F ( x , z ) in 3-D. y is "up" the screen, x is across the screen, and z appears to go "into" the screen.

Functions must be entered in ALL UPPER CASE or ALL LOWER CASE. Example z*sin(x) + (1-z)*tan(1/x).

You need to play around with the scale (typically in the range 0.1 to 10) and the ranges until you like the picture.

Polar Curves: Executable or Text Version

Includes 9 pre-set curves in Polar form, such as the Lemniscate of Bernoulli. See also Famous Curves.

Catacaustic Curves: Executable or Text Version

As illustrated by the screen dump picture below, with this program you can select a point light-source with the mouse (just left-click where you want when the mouse cross-hairs appear), and you will see the curve created by the envelope of reflected light rays from the surface of the chosen curve.

I achieve this by accurately estimating the derivative of the curve at each point the light hits it, from which I calculate the Unit Normal vector to the curve at that point, from which I can work out the correct reflected ray.

For further inspiration of which curves to draw, Jan Wassenaar's website has 667 different curves to choose from.

Implicit Curves: Executable or Text Version

Usually, curves are drawn from an EXPLICIT formula such as y = sin(x) , where y is on one side of the equals sign, and all the stuff to do with x is one the other side. An IMPLICIT function is of the form F(x,y) = 0. Most formulae cannot be written explicitly, but this very simple program allows you to see what something like x*x + y*y + sin(xy) - 16 = 0 looks like, for example.

Revised in January 2018 to run a little quicker, by putting some of the number-crunching into Assembler.

Return to Top Page

Next Page