# How to find point on a circle that's opposite another point?

How do I find the coordinate of point and angle value on circle sprite which placed on opposite side of sprite from a touch point and the center point of the sprite?

I know A position, B position and sprite circle size. How do I calculate the position of C? and the angle it is around the sprite circle?

Calculate a vector from B to A, normalize it (divide by the vector's length), then multiply by the circle size:

vx = A.x - B.x
vy = A.y - B.y
length = sqrt(vx*vx + vy*vy)
C.x = vx / length * size + A.x
C.y = vy / length * size + A.y


For the angle you can use the atan2 function, if your language has it.

• Remember to add A's position back to C to get the actual position. This calculates the position of C relative to A. (Also might as well update the code to use A and B instead of just x, x1, y, y1, just to make things clear).
– House
Jul 15, 2014 at 0:37
• @Byte56 thanks, it help me. Sergio big thanks. about atan2, please do you can say what Y and X i need put to atan2(y,x) method? Jul 15, 2014 at 1:30

angle = atan2((C-A).y, (C-A).x) + PI/2;