I have a cone, centred at the origin, aligned with the $z$ axis, and so having equation $x^2+y^2=a^2z^2$. I also have a general plane, $px+qy+rz=s$. Suppose that I know a priori that this plane and cone intersect to form a hyperbola (rather than a parabola or ellipse) in the plane.

If we then define an orthogonal coordinate system $(X,Y)$ in the plane, how would I go about finding the equation of the hyperbola in the $(X,Y)$ coordinate system, in terms of the parameters $a,p,q,r,s$? This seems like it should be a relatively easy problem to solve (especially with computer algebra packages like Mathematica), but I can't seem to work out how to do it.

It's easy enough to get the shape in the $(x,y)$ plane by eliminating $z$ from the two equations. But how can I project this curve into the $(X,Y)$ plane, and get the resulting shape?

My reason for doing this is that, I have a CCD image (which is my $(X,Y)$ plane) with curves that I know are formed by such a projection, to which I'm trying to fit hyperbola. All curves should have the same parameters $p,q,r,s$ (since the CCD does not move), and I can make a theoretical calculation of $a$ based on the setup.


1 Answer 1


Suppose you eliminated $z$ from the two equations of the cone and the plane and obtained an equation of the projection of the hyperbola in the form

$ (u - u_0)^T H ( u - u_0) = 1$

where $u = [x, y]^T $

Given $u$ on this projected hyperbola, one can easily find the corresponding $z$ from

$ z = \dfrac{ s - p x - q y }{r} $

Therefore, we define $r_1 = [x, y, z]^T$ to be the corresponding point on the hyperbola on the plane then

$ r_1 = r_0 + A u $

where $r_0 = \begin{bmatrix} 0 \\ 0 \\ \dfrac{s}{r} \end{bmatrix} $

$A = \begin{bmatrix} 1 && 0 \\ 0 && 1 \\ - \dfrac{p}{r} && - \dfrac{q}{r} \end{bmatrix} $

From this, it follows that

$ u = (A^T A)^{-1} A^T (r_1 - r_0 ) = G (r_1 - r_0) $

where $G=(A^T A)^{-1} A^T$ is $2 \times 3$ and has rank $2$.

At this point, it useful to introduce the vector $ u_1 = r_0 + A u_0 $

From which it follows that $u_0 = G (u_1 - r_0) $

Substituting this into the found hyperbola equation:

$ (G (r_1 - u_1))^T H (G (r_1 - u_1)) = 1 $

So that

$ (r_1 - u_1)^T G^T H G (r_1 - u_1) = 1 $

Now if we attach a local reference frame $OXYZ$ to the plane, then

$ r_1 = O + R r_2 $

Therefore, in terms of the local coordinates $r_2$ we have

$ ( O + R r_2 - u_1 )^T G^T H G ( O + R r_2 - u_1 ) = 1 $

Let's set $Q = R^T G^T H G R $, and $r^* = R^T (u_1 - O) $, then

$ (r_2 - r^*)^T Q (r_2 - r^*) = 1 $

Finally since we are considering the $XY$ plane , then $Z = 0$, so setting $Z=0$ in $r_2$ gives the hyperbola equation in $X$ and $Y$.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .