This example is for Processing 3+. If you have a previous version, use the examples included with your software. If you see any errors or have suggestions, please let us know.

Graphing 2D Equations by Daniel Shiffman.

Graphics the following equation: sin(n*cos(r) + 5*theta) where n is a function of horizontal mouse location.

void setup() {
size(640, 360);
}

void draw() {
float n = (mouseX * 10.0) / width;
float w = 16.0;         // 2D space width
float h = 16.0;         // 2D space height
float dx = w / width;    // Increment x this amount per pixel
float dy = h / height;   // Increment y this amount per pixel
float x = -w/2;          // Start x at -1 * width / 2
for (int i = 0; i < width; i++) {
float y = -h/2;        // Start y at -1 * height / 2
for (int j = 0; j < height; j++) {
float r = sqrt((x*x) + (y*y));    // Convert cartesian to polar
float theta = atan2(y,x);         // Convert cartesian to polar
// Compute 2D polar coordinate function
float val = sin(n*cos(r) + 5 * theta);           // Results in a value between -1 and 1
//float val = cos(r);                            // Another simple function
//float val = sin(theta);                        // Another simple function
// Map resulting vale to grayscale value
pixels[i+j*width] = color((val + 1.0) * 255.0/2.0);     // Scale to between 0 and 255
y += dy;                // Increment y
}
x += dx;                  // Increment x
}
updatePixels();
}