Given the three coordinates $(x_1, y_1, z_1)$, $(x_2, y_2, z_2)$, $(x_3, y_3, z_3)$ defining a circle in 3D space, how to find the coordinates of the center of the circle $(x_0, y_0, z_0)$?
[Math] 3D coordinates of circle center given three point on the circle.
3danalytic geometrycirclescoordinate systemsgeometry
Related Solutions
Given $n+1$ points ${\bf a}_k$ $(0\leq k\leq n)$ in ${\mathbb R}^n$ one considers their convex hull $S$ which is a (maybe degenerate) $n$-dimensional simplex. This simplex is spanned by the $n$ vectors ${\bf a}_k-{\bf a}_0$ $(1\leq k\leq n)$, and its volume is equal to the volume of the parallelotope $P$ spanned by these vectors, divided by $n!$ (see below). The volume of $P$ is, up to sign, equal to the determinant of the matrix having the coordinates of the spanning vectors ${\bf a}_k-{\bf a}_0$ in its columns. So $${\rm vol}(S)={1\over n!}\>\biggl|\det\bigl[{\bf a}_1-{\bf a}_0,\ {\bf a}_2-{\bf a}_0,\ \ldots,\ {\bf a}_n-{\bf a}_0\bigr]\biggr|\ .\tag{1}$$ Consider now your matrices $M_2$ and $M_3$. If you subtract the first row from all the other rows you obtain matrices $\hat M_2$ and $\hat M_3$ whose last column is zero, apart from the element in the upper right corner, which remains $1$. It's easy to see that the determinants of $\hat M_2$, $\hat M_3$, and therefore the determinants of $M_2$ and $M_3$, coincide, up to sign, with the determinant appearing in $(1)$. But your conjectured numerical factor is wrong.
I cannot see how the equations of the hyperplanes bounding $S$ should play a rĂ´le here.
A proof of $(1)$ rests on induction and an application of Fubini's theorem. For arbitrary $n\geq1$ consider the special simplex with vertices ${\bf 0}$ and $h{\bf e}_k$ $(1\leq k\leq n)$: $$S_n(h):=\{(x_1,x_2,\ldots,x_n)\>|\>x_k\geq0 \ (1\leq k\leq n), \ x_1+x_2+\ldots+x_n\leq h\}\ .$$ It is geometrically obvious that ${\rm vol}_n\bigl(S_n(h)\bigr)=h^n\>{\rm vol}_n\bigl(S_n(1)\bigr)$. We now proceed as follows: $$\eqalign{{\rm vol}_{n+1}\bigl(S_{n+1}(1)\bigr)&=\int_{S_{n+1}(1)} 1\ {\rm d}(x_1,\ldots,x_n)\cr&=\int_0^1\left(\int_{S_n(1-x_{n+1})}1\ {\rm d}(x_1,\ldots,x_n)\right)\>dx_{n+1}\cr &=\int_0^1{\rm vol}_n\bigl(S_n(1-x_{n+1})\bigr)\>dx_{n+1}\cr &={\rm vol}_n\bigl(S_n(1)\bigr)\int_0^1(1-x_{n+1})^n\>dx_{n+1}\cr &={1\over n+1}{\rm vol}_n\bigl(S_n(1)\bigr)\ .\cr}$$
The answer is yes to both questions. Start with a regular (all faces equilateral triangles) tetrahedron $P_1'P_2'P_3'P_4'$, where the answer is clearly yes to both questions. Then apply an affine transformation $A$ (a combination of stretching, shearing, rotating, and translation) to bring $P_1'P_2'P_3'P_4'$ to $P_1P_2P_3P_4$. For notation, let $A=T\circ L$, where $L$ is linear and $T$ is a translation by some vector $u$.
The transformation will have modified the volume of each of the sub-tetrahedra in the same way: multiplying it by $\det L$. So the sub-tetrahedra of $P_1P_2P_3P_4$ all have the same volume.
The relation that $\frac{P_1'+P_2'+P_3'+P_4'}{4}=O'$ will continue to hold once the transformation is applied to each of these points: $$P_i=AP_i'=LP_i'+u$$
So $$\begin{align} \frac{P_1+P_2+P_3+P_4}{4}&=\frac{LP_1'+LP_2'+LP_3'+LP_4'+4u}{4}\\ &=L\left(\frac{P_1'+P_2'+P_3'+P_4'}{4}\right)+u\\ &=LO'+u\\ &=AO'\\ \frac{P_1+P_2+P_3+P_4}{4}&=O \end{align}$$
Best Answer
There are plenty of online articles for the 2D case. A simple google search will show that this link provides a good explanation about how this is done in 2D. It also shows how to construct the circle center geometrically. So, what you need to do is
1) Find a plane from the 3 points and create a 2D coordinate system on that plane.
2) Convert all 3 points to that 2D coordinate system.
3) Find the circle center using the link above.
4) Convert the circle center (in 2D) back to 3D.
Edit 1: I added the steps for creating a local coordinate system (CS) on a plane defined by 3 points
1) Compute unit vector n1 from P1 and P2. Use this as the x-axis for the local CS.
2) Compute unit vector n2 from P1 and P3.
3) Use n1 x n2 (where 'x' means the cross product) as the z-axis of the local CS.
4) Use (n1 x n2) x n1 as the y-axis of the local CS.
5) Now, you have a local coordinate system, I hope that you know how to convert P1, P2 and P3 to this local CS. After the conversion, the new coordinates for these 3 points should all have their z values = 0.0. You can then use their (x, y) values to find the center of the circle.
If you have all 3 points collinear, you cannot create a local CS and you cannot find a circle from 3 collinear points either.