# Bouncing Ball with Vectors

Bouncing Ball with Vectors by Daniel Shiffman.

Demonstration of using vectors to control motion of body This example is not object-oriented See AccelerationWithVectors for an example of how to simulate motion using vectors in an object

```
PVector location;  // Location of shape
PVector velocity;  // Velocity of shape
PVector gravity;   // Gravity acts at the shape's acceleration

void setup() {
size(640,360);
location = new PVector(100,100);
velocity = new PVector(1.5,2.1);
gravity = new PVector(0,0.2);

}

void draw() {
background(0);

// Add velocity to the location.

// Bounce off edges
if ((location.x > width) || (location.x < 0)) {
velocity.x = velocity.x * -1;
}
if (location.y > height) {
// We're reducing velocity ever so slightly
// when it hits the bottom of the window
velocity.y = velocity.y * -0.95;
location.y = height;
}

// Display circle at location vector
stroke(255);
strokeWeight(2);
fill(127);
ellipse(location.x,location.y,48,48);
}

```

## Functions Used

fill()

Sets the color used to fill shapes

stroke()

Sets the color used to draw lines and borders around shapes

size()

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

ellipse()

Draws an ellipse (oval) to the screen

setup()

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

strokeWeight()

Sets the width of the stroke used for lines, points, and the border around shapes

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