Calculate new velocity of a ball when colliding with a circle in 2D

92 Views Asked by At

I'm currently making a 2D game in C++ but i've come across a problem while doing collisions. I have a ball free falling

enter image description here

The above example shows what's going on in my game, I can detect when the two circle collide fine but I don't know how to calculate a new velocity for the ball to get it to go "around" the circle and not try to force it's way through it. Any idea on how to calculate this vector ?

Edit: forgot to mention, circle collision is static while ball is moving