I'd think this would be a standard problem, but I've been searching for hours now and my math is too rusty to figure this out on my own.

Here's the scenario:

We have a ball, represented by a circle with the radius R1, center C1 and vector of trajectory V1.

The ball is inside a larger circle with the radius R2, center C2, and the circle is stationary.

Now, given a position C1a inside the larger circle and the position C1b = C1a + V1, I need to find a point P (if any exists) on the line C1a-C1b such that the shortest distance from P to circle 2 is exactly R1, which means the ball is just touching the outer circle.

For simplicity's sake let us assume that C1a-C1b crosses the outer circle once.

enter image description here

What I've got so far:

  • Point P must on the line C1a-C1b, which are, at the moment of calculation, given.
  • Point P2 (the touching point of the two circles) must be on the larger circle
  • P1-P2's length must be exactly R1
  • Point P2 must be on the smaller circle

For the life of me, I can't put that into a decent formula.

P.S. Apologies for the sketch, I lack access to a decent drawing tool at the moment.

  • $\begingroup$ Assuming 2 dimensional balls , write it as algebraic problems. You know the equation of a circle centred at a,b . Then all you need to do is to add the velocity to the centre . Not sure what you are trying to do , but you could do much more simplification and end up with one point hitting a circle . $\endgroup$
    – jimjim
    Dec 13 '20 at 22:30
  • $\begingroup$ That's just it,the radius of the smaller circle much affects the point of collision, preventing me from simplifying the problem to a point. As the surface being impacted is a curve, the point of impact I'm actually interested in depends on both the radius of the smaller circle and angle of approach. $\endgroup$
    – JasonX
    Dec 13 '20 at 22:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.