Find ellipse center from 3 points (in 3D)

393 Views Asked by At

I have following problem:

a camera detects 3 points with 3D coordinates, and I know all those points are on a ellipse. Additionally I know length of the major and minor axis of the ellipse. Is it possible from that information to calculate the center of the ellipse? I am kind of lost how to do that with ellipses.

2

There are 2 best solutions below

2
On BEST ANSWER

First you can identify the plane containing the three points. The center will lie in that plane. You can rotate to make it a $2d$ problem if needed. Alternatively you can in most cases project it onto the $xy$ plane.

Next, you can try to use the reflective properties of an ellipse. If $F_1$ and $F_2$ are the foci, and the three points are $P_1$, $P_2$, and $P_3$, then $d(P_i, F_1) + d(P_i, F_2)$ is a constant, which you can find from the major and minor axes. That gives you three equations.

Edited to add Since you have the major and minor axes you can compute how far apart the foci are. That gives you another condition, which should be enough to solve.

0
On

Using the three given points we can identify the plane on which the three points lie.

Create an $x'y'$ coordinate system for that plane with its origin at any point on the plane and with an arbitrary orientation. The only requirement is that both the $x'$ and $y'$ axes lie on the plane.

Next, find the $x'y'$ coordinates of the three given points, let these be $(x_1, y_1), (x_2, y_2), (x_3, y_3)$. In addition, we know $a$ and $b$, the semi-major and semi-minor axes lengths.

The equation of the ellipse in the plane is

$ (r - C)^T Q (r - C) = 1 $

where $r = [x, y]^T$ and $C$ is the center of the ellipse, and,

$Q = \begin{bmatrix} \dfrac{\cos^2 \theta}{a^2} + \dfrac{\sin^2 \theta}{b^2} && \sin \theta \cos \theta (\dfrac{1}{a^2} - \dfrac{1}{b^2}) \\ \sin \theta \cos \theta (\dfrac{1}{a^2} - \dfrac{1}{b^2}) && \dfrac{\cos^2 \theta}{b^2} + \dfrac{\sin^2 \theta}{a^2} \end{bmatrix} $

where $\theta$ is the angle that the major axis makes with the positive $x'$ axis.

Now plugging in the three points in the ellipse equation results in three equations in three unknowns which are the two coordinates of the center and the angle $\theta$.

These three equations can be solved using an iterative method like the Newton-Raphson multivariate method, which is very fast and efficient.

Finally, once we have $C$, the three-dimensional coordinates of the center can be computed.