f(x, y): Math.sqrt(x*x + y*y) produces a cone.
f(x, y): i*x + j*y + m where i, j, and m are constants produces a plane.
The precision determines the step size when it loops over the board. A smaller precision means smaller step size and more accurate representation of the function.
When adding a line you use the format "(x, y, z) = (3+2*t, t, 0)" and the variable t to step through values. To make the interpretation easier the three components x, y, and z are separated into their own fields. I wanted to make it moveable by mouse but I that never happened.
You can zoom with the mouse wheel and also move the camera with the arrow-keys. Unfortunatly this also moves the webpage so I made a standalone version too.
This thing was created in spring 2012. In school we had a course in multiple variables and this thing was nice to plot some of the graphs.
I used the Three.js library to simplify the use and drawing on the canvas. The menu is made with the dat.GUI library. My code is awful and it is very poorly documented.