# Homework Help: Reflecting a circle off another circle

1. Jul 1, 2010

### jrs8719

1. The problem statement, all variables and given/known data

I am working on a computer game and I need to correctly reflect a ball off a circle object. I am trying to do it as a line and circle intersection. I know the intersect point of the line (ball path) and the circle. Now I want to rotate the ending point of the ball path about the intersection point to get the correct angle of reflection. The following are known:

ball current x
ball current y
ball end x
ball end y

circle center x
circle center y

intersection point of ball path and circle x and y

2. Relevant equations

I don't know.

3. The attempt at a solution

I know I need to find the angle of incidence between the tangent line and the incoming ball path which will also equal my angle of reflection. I think once I know those two angles I can subtract them from 180 to get my rotation angle then rotate my end point about the angle of intersection by that amount. I just don't know how.

I have attached a pic. Again, I know the two end points of my line segment, the point of intersection and the radius of the circle.

I am ultimately trying to get the point marked by the open circle, so I need to know the angle between the ball path and the norm, which is the blue line.

Thanks.

File size:
2.8 KB
Views:
68
2. Jul 2, 2010

### LCKurtz

Call the starting position of the ball (x0,y0), the bounce point on the circle (a,b), and the end point (x1,y1). The vector from the (a,b) to (x0,y0) is

$$\vec V = \langle x_0 - a, y_0 - b\rangle$$

The position vector of (a,b) is

$$\vec R = \langle a,b\rangle$$

and a vector of length one in that direction is

$$\hat r = \frac{\vec R}{| \vec R|}$$

The orthogonal projection of V on the radius direction is

$$\vec V_{perp} = \vec V - (\vec V \cdot \hat r)\hat r$$

Then the ending point is:

$$\langle x_1,y_1\rangle = \vec R + \vec V - 2\vec V_{perp}$$

3. Jul 2, 2010

### LCKurtz

Since this apparently isn't homework, I will save you a little more work. Here's the coordinates (x1,y1) of the reflection point in terms of the given point and the bounce point on the circle:

$$x_1=\frac{x_0(a^2-b^2)+2aby_0}{a^2+b^2}$$

$$x_2=\frac{y_0(b^2-a^2)+2abx_0}{a^2+b^2}$$