# Velocity and Acceleration

- Author:
- Juan Carlos Ponce Campuzano

We already know how to implement motion to an object with a given velocity. In this section, we will add acceleration to our model.
To start, we can use part of the script we wrote in the first example.
We will need to define the l

*ocation*, the*circle*and its*velocity*:```
#Location
xlocation = 2
ylocation = 2
```

```
#Ball
O=(xlocation, ylocation)
c=Circle(O, 1)
```

```
#Velocity. In this case we can start with the value 0 for each entry.
xvel= 0
yvel = 0
```

Now we can introduce the *acceleration*:```
#Acceleration
xacc = -0.005
yacc = 0.003
```

We already know how to update the *location*of the ball using the expression:*location*=*location*+*velocity*However, we want to implement*acceleration*to our model. To update the velocity of the ball, we can use the expression:*velocity*=*velocity*+*acceleration*To do this, we have to write in the slider*Run*the lines:```
SetValue(xvel, xvel + xacc)
SetValue(yvel, yvel + yacc)
```

and then
```
SetValue(xlocation, xlocation + xvel)
SetValue(ylocation, ylocation + yvel)
```

The following applet shows the result. Go ahead, activate the animation and see what happens!Well, after a couple of seconds, the ball goes too fast. The animation does not work very well. We need to find a way to restrict the value of the velocity, so it does not increase infinitely.
One way to do this is by defining the velocity components as sliders:
xspeed = Slider(-0.8, 0.8, 0.001, 1, 140, false, true, false, false)
yspeed = Slider(-0.8, 0.8, 0.001, 1, 140, false, true, false, false)
Using these values will restrict the velocity components to the interval [-0.8, 0.8]
Compare this implementation with the following applet.

## Final result

Download file: Velocity and Acceleration

## Exercise

Try implementing velocity and acceleration with a random location of the ball or with a different acceleration at the beginning.
You can also try implementing a bouncing ball with velocity and acceleration.