Hi there. Again.

I’ve been working on a bounce routine for a while, after failing miserably work it out myself I started looking for examples mentioned in another post as escape vectors. But I thought I’d start this one as hopefully my description will be better.

I have a circle, inside this circle there are objects that need to bounce around. Being a circle I always have a normal to the centre, and I always have the position and direction of the objects.

I found this example:

Vnew = -2*(V dot N)*N + V

Where V is the object vector and N is the surface normal.

So I wrote this

` Dim N As Vector2 = Vector2.Normalize(Ship.Position - Centre)

```
Dim V As Vector2 = Vector2.Normalize(Ship.Direction)
Dim NewVector As Vector2 = -2 * (Vector2.Dot(V, N) * N + V)
Ship.Direction = NewVector`
```

Where V is the vector of the object and N is the normal to the centre of the circle from the point of impact.

But, a 90’ hit works kind of ok, a shallow hit either bounces off at 90’ to the normal, or bounces back in the direction of the initial movement vector.

Have I got something wrong with the above? Surely the equation should take into account any angle of attack, so it can’t be a quadrant thing.

Any ideas? Thanks guys. And gals.