I'm given two points on a circle:

  • a point $(x_1, y_1)$ with corresponding normal vector $(u_1, v_1)$ and
  • a second point $(x_2, y_2)$ (without normal vector).

How can I compute the circle? (Especially the radius. The center is rather trivial.)

My thoughts so far:

The first point with normal vector defines a straight line containing the center. So I'd need to find the point $(x_c, y_c)$ on that line having the same distance $r$ to both given points.


The centre is given by the intersection of the lines $l_1(t) = \left ( {x_1+x_2\over 2}, {y_1+y_2\over 2} \right ) + t(y_1 - y_2, x_2 - x_1)$ and $l_2(t) = (x_1, y_1) + t(u_1, v_1)$

The first line is the perpendicular bisector of the segment joining $(x_1, y_1)$ and $(x_2, y_2)$ and the second line is the is the line passing through $(x_1, y_1)$ along the direction of the normal vector, You may solve for $$l_1(t_1) = l_2(t_2)$$ and find $t_1$ and $t_2$ by equating the components of the vector on both sides of the equation to find $l_1(t_1)$ which is the position vector of the center of the circle.

  • $\begingroup$ Oh, that's a promising idea. I'll try that approach! :) $\endgroup$ – Falko Nov 25 '15 at 16:45

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.