Canvas Width:
Canvas Height:
Number of Divisions:
Line Thickness:
Yonder Y Value:
Hither Y Value:
X Emphasis (Yonder):
X Emphasis (Hither):
Z Emphasis (Yonder):
Z Emphasis (Hither):
Min X Value:
Max X Value:
Min Y Value:
Max Y Value:
f(x, y) =:
Load Function:
Show Reference Plane:

FAQ

Q: I see weird effects at the edges of my graphs. What can I do?

A: There are three things you can do. Reduce the Z emphasis, hither and yonder, which smooths out the function; increase the number of divisions; or, reduce line thickness. All of these things will reduce the problem. Line thickness is perhaps the most important.

Q: Can I use non-integral line thicknesses?

A: Yes.

Q: Can I use a non-integral number of divisions?

A: No. That causes problems with the math. Gives the computer a headache. Well, the programmer, anyhow.

Q: How large can I make the graphic?

A: There are browser-based limits, with additional caveats. See here. I have personally had consistent success with both Chrome and Firefox at 8192 x 6144, but I've had frequent problems at significantly larger sizes. If you go too big, you may get either an OS error complaining about memory, or a blank canvas but no errors. I've gotten both. My dev box has 12 GB in it, so I think the OS error may have really been a browser problem.

Q: Can I save the images I've created?

A: Absolutely. Just right click on the image and choose "Save image as..."

Q: Why does the "Hither Y" value want to be bigger than the "Yonder Y" value? That makes no sense.

A: The y scale of the graphic is reversed, like most computer graphics. Higher y values are lower in the graphic.

Q: Can you explain the behavior of the functions involving Math.random()? They don't look like functions at all. I can see right through them.

A: You are correct. The problem is that the function is called for each point in the field, for each quadrangle that contains that point. This could be up to four times per point. With a normal function this is no problem; you get the same answer each time. When the function involves random numbers, however, you don't get the same answer each time and the graph tears. To fix this I'd have to cache the return values for each point. I don't have a pressing reason to, though, and I like the look of the current graphs. Maybe at some point in the future.

Q: I have a cool function. Would you like to include it in your library?

A: Maybe. If it looks cool within the standard view settings (or can be made to) I might well use it. Email it to laura@piumasoft.com with the subject "Cool Function," please.

Q: I don't like the line that runs straight down the center of my image. What can I do?

A: Use an odd number of divisions.

Back