I have an ellipse that is defined by two known tangent points (A and C that converge at a known B), and an angle, θ (always <180º) representing ∠ADC where D is the center of the ellipse (but D is unknown).
How do I determine the parameters of the ellipse from this data?
Best Answer
We can generate a one-parameter family of conics that pass through $A$ and $C$ and have the correct tangents there by taking an affine combination of two degenerate conics: the pair of tangent lines and the double line through $A$ and $C$.
Let $\mathbf a$, $\mathbf b$ and $\mathbf c$ be homogeneous coordinate vectors of points $A$, $B$ and $C$, respectively. Set $$Q_1=(\mathbf a\times\mathbf b)(\mathbf b\times\mathbf c)^T+(\mathbf b\times\mathbf c)(\mathbf a\times\mathbf b)^T.$$ This symmetric matrix represents the two tangent lines. For the double line through $A$ and $C$, we have $$Q_2 = (\mathbf a\times\mathbf c)(\mathbf a\times\mathbf c)^T.$$ These generate the one-parameter family of conics $Q(\lambda) = (1-\lambda)Q_1+\lambda Q_2$. Since this is a linear combination of $Q_1$ and $Q_2$, it includes all of the points that those two conics have in common, so in particular it passes through $A$ and $C$. The extension of the chord of contact of the tangents through $B$ is its polar $Q\mathbf b = \lambda(\mathbf a\times\mathbf c)(\mathbf a\times\mathbf c)^T\mathbf b$, which is clearly a nonzero scalar multiple of $\mathbf a\times\mathbf c$ when $\lambda\ne0$, so it is the line through $A$ and $C$ as required.
The center of $Q(\lambda)$ (when it does have a center), turns out to be ${1-\lambda\over1+\lambda}B+{\lambda\over1+\lambda}(A+C)$. Reparameterizing by setting $\mu=(1-\lambda)/(1+\lambda)$ produces $$D=(1-\mu){A+C\over 2}+\mu B \tag1$$ so all of the centers lie on the line through $B$ and the midpoint of $AC$. If $\mathrm m\angle{ADC}=\theta$, then $P$ satisfies $$\left((A-D)\cdot(C-D)\right)^2 = \lVert A-D\rVert^2 \lVert C-D\rVert^2 \cos^2\theta. \tag2$$ With the parameterization in (1), both sides of this equation are quadratic in $\mu^2$, so solving for $\mu$ should be straightforward, albeit messy. This overgenerates solutions, though: select one for which the midpoint of $A$ and $C$ lies between $B$ and $D$, i.e., $\mu\lt0$ ($\mu\ge0$ does not produce ellipses). Substitute back into $Q$ to get the conic in general form and then use standard techniques for extracting semiaxes and other desired parameters from it.
Once we know that the ellipse’s center lies on the line through $B$ and the midpoint $M$ of $AC$, we can instead proceed in several relatively simple stages.
You now have the center of the ellipse, two point on it and the tangents at those points. I’m sure that there are further geometric constructions for the ellipse from here, but analytically the problem devolves to solving a system of homogeneous linear equations. Setting $$Q=\begin{bmatrix}m_{11}&m_{12}&m_{13}\\m_{12}&m_{22}&m_{23}\\m_{13}&m_{23}&m_{33}\end{bmatrix},$$ we have the following constraints: $$\begin{align} \mathbf a^TQ\mathbf a = \mathbf c^TQ\mathbf c = 0 &\text{ (two points on the ellipse)} \\ (\mathbf a\times\mathbf c)\times(Q\mathbf b) = 0 &\text{ (tangents meet at }B\text{, so it’s the pole of }AC\text{)} \\ (0,0,1)^T\times(Q\mathbf d) = 0 &\text{ (polar of the center is the line at infinity)}. \end{align}$$ Here $\mathbf d$ is a homogeneous coordinate vector of the center point $D$. This system of homogeneous linear equations in the unknown elements of $Q$ is underdetermined and you should end up with one free variable that you can set to $1$ or some other convenient value. This will give you a general conic equation of the ellipse, from which you can proceed as above.