# PolarToCartesian

PolarToCartesian by Daniel Shiffman.

Convert a polar coordinate (r,theta) to cartesian (x,y): x = rcos(theta) y = rsin(theta)

```
float r;

// Angle and angular velocity, accleration
float theta;
float theta_vel;
float theta_acc;

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

// Initialize all values
r = height * 0.45;
theta = 0;
theta_vel = 0;
theta_acc = 0.0001;
}

void draw() {

background(0);

// Translate the origin point to the center of the screen
translate(width/2, height/2);

// Convert polar to cartesian
float x = r * cos(theta);
float y = r * sin(theta);

// Draw the ellipse at the cartesian coordinate
ellipseMode(CENTER);
noStroke();
fill(200);
ellipse(x, y, 32, 32);

// Apply acceleration and velocity to angle (r remains static in this example)
theta_vel += theta_acc;
theta += theta_vel;

}

```

## Functions Used

fill()

Sets the color used to fill shapes

size()

Defines the dimension of the display window width and height in units of pixels

ellipse()

Draws an ellipse (oval) to the screen

sin()

Calculates the sine of an angle

setup()

The setup() function is run once, when the program starts

cos()

Calculates the cosine of an angle

translate()

Specifies an amount to displace objects within the display window

draw()

Called directly after setup(), the draw() function continuously executes the lines of code contained inside its block until the program is stopped or noLoop() is called

noStroke()

Disables drawing the stroke (outline)