1

It looks like a circle in 3D space has been approached from every angle but the one I am interested in, namely: given the center $(x,y,z)$ and two randomly spaced $(x,y,z)$ points on the circle, what are the equations to map out the rest of the circle?

This thread (Parametric Equation of a Circle in 3D Space?) has gotten me the closest but I'm afraid I'm too dense to translate the equations therein to my specific case.

Thanks for any assistance you can provide.

ervx
  • 12,208
  • You can calculate which plane the circle is in with the three points you know. Then you can build a basis that spans the subspace that is parallell to that plane and then expand it with the normal to fill out the whole 3D space. Finally when you have your new coordinate system in this new basis you just write the good old circles' equation followed by a transformation to the new coordinate system. The "good old equation" is something like $(x-c_x)^2+(y-c_y)^2 = R^2$. – mathreadler Jul 28 '17 at 19:03

1 Answers1

2

Let us call the centre $c=(x_c,y_c,z_c)$ and the two points $p_i$. Then the radius of the circle is $r=\overline{cp_1}=\overline{cp_2}$. These three points define a plane (if they are not an a diameter of your circle). The normale of this plane can be described by $n = (p_1-c)\times (p_2-c)$, which we normalize to unit length by $n_0=n/||n||$.

Next we define a orthogonal system of vectors in this plane. Let $q_1=p_1=(x_1,y_1,z_1)$ and $q_2=(x_2,y_2,z_2)=c + n_0\times (p_1-c)$

From the thread you referenced you can now take:

$$x(\theta)=x_c+\cos(\theta)(x_1-x_c)+\sin(\theta)(x_2-x_c)$$ $$y(\theta)=y_c+\cos(\theta)(y_1-y_c)+\sin(\theta)(y_2-y_c)$$ $$z(\theta)=z_c+\cos(\theta)(z_1-z_c)+\sin(\theta)(z_2-z_c)$$

milbrandt
  • 156
  • 1
    This formula works if the two points are a quarter turn apart on the circumference, but not unfortunately in general. (It's easy enough to fix, however, by replacing the second point with an appropriately normalized cross product. ;) – Andrew D. Hwang Jul 28 '17 at 19:25
  • 1
    Thanks @Andrew D. Hwang, hopefully fixed now. – milbrandt Jul 28 '17 at 19:39