Best fitting circle to points in 3D I have a set of n ≥ 3 points in 3D that are measurements of a possible circle. The measured points are "noisy" so best-fitting algorithms are involved. I'm programming in C# and have put together some algorithms to do my procedure to find the best fitting circle to the points.
My procedure is the following:


*

*Find the centroid C (x0, y0, z0) of the points.

*Find the best fitting plane for the points using SVD. I now have a normalvector N [a, b, c] and a point C, fully describing the plane P

*Orthogonal project all points to the plane

*Subtract C from all points, such that C becomes the new origin O for the points. I now have a plane that crosses origin.

*Translate the projected points into a 2D coordinate system that lies in the plane, using this algorithm.

*With the points now described in a 2D coordinate system, i can use Levenberg-Marquardt to find the best fitting cirlce. This gives me a circle center A (a, b) and a radius R

*The found circle center is described in the 2D coordinate system of the plane P
Now; my question:

How do I translate the found circle center A to the original 3D coordinate system?

I've tried to do A + C but this produces the following, which places the circle center in the centroid of the points:


Found the answer my self. 
Using notation from this question: 2D Coordinates of Projection of 3D Vector onto 2D Plane
Find the matrix M that converts coordinates from the X, Y, Z-system to the coordinate system of the plane: N, e'1, e'2. This is a 3 x 3 matrix with e'1 as row 1, e'2 as row 2 and N as row 3. By taking the inverse (transpose) of this matrix you can convert coordinates the other way around.
