I have a conic section in the real projective plane. This is represented by its real symmetric 3×3 matrix. I verify that the conic section is real and non-degenerate by computing the eigenvalues of the matrix, finding that it's of full rank and indefinite, and follow a different code path if it isn't. The conic could be very close to singular though.

I can find points of the conic section by intersecting it with a line, which is easy using the matrix, or by finding a tangent incident on a point, which is easy using the inverse of the matrix.

I would like to define an arbitrary but consistent cyclic orientation of the conic, such that for any point on the conic, I can get a nonzero vector tangent to the conic and directed in some consistent direction along the conic. What is a good way to do this?

I would like a way that is numerically stable in all cases, and is not too difficult to implement. I can use a matrix library, so the method could contain matrix operations or other matrix decompositions.


The tangent vector $v$ at $x\in\mathbb{RP}^2$ to $x^{\top}Ax=0$ would satisfy $x^\top Av=0$, and also belong to the tangent space, so $x^\top v = 0$. So it must be the cross product $$ v = x\wedge Ax, \qquad\text{or}\qquad v = -x\wedge Ax, $$ and you can pick freely one of these orientations.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.