Okay, its basically circle collision and reflection, except one circle doesn't move. Forget the infinitely small object thing, all a radius of zero does is make the collision system not take into account the radius of the other circle, for example:
// if circle a is the ball and circle b is the point.
if((circleB - circleA).Length < circleAradius ) // as opposed to if((circleB - circleA).Length < circleAradius + circleBradius )
{
blah blah blah blarg
}
Don't worry, I think I have found a good resource at http://freespace.virgin.net/hugo.elias/models/m_snokr.htm
I'll find out when I go to make the program tomorrow, to late now.
EDIT: Yes worry!
I need some one to explain circle physics to me! I don't get how this (found on the webpage):
"Now, the impulse is multiplied by the impact speed and the masses:
impulse = impulse * square_root(ImpactSpeed * mass1 * mass2)"
Can help find the reflection of a circle.