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?

enter image description here


2 Answers 2


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.

  • 2
    \$\begingroup\$ 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). \$\endgroup\$
    – House
    Commented Jul 15, 2014 at 0:37
  • \$\begingroup\$ @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? \$\endgroup\$
    – Snake22
    Commented Jul 15, 2014 at 1:30

to complete the answer:

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .