how do I extract conic equation from ellipsoid parameters

7 views (last 30 days)

Hello I have a question how do I extract conic equation from ellipsoid parameters

Here is ellipsoid parameters: the center [x0,y0,z0], the axes lengths [a,b,c], and the rotation angles [ex,ey,ez]

How can I obtain the conic equations coefficients (A,B,C,D,E,F,G,H,I) from ellipsoid parameters here is conic equation A*x^2+B*y^2+C*z^2+ 2D*x*y + 2E*x*z + 2F*y*z+2Gx+2Hy+2Iz -1=0

Answers (2)

Image Analyst
Image Analyst on 10 Mar 2015
  2 Comments
Image Analyst
Image Analyst on 10 Mar 2015
It's for 2D. I imagine the algorithm to extend it to 3D might be straightforward, but still complicated. There might be simpler, but less accurate ways, like if you just want to minimize the residuals along the z dimension instead of the residuals from the point perpendicular to the fitted surface.

Sign in to comment.


John D'Errico
John D'Errico on 10 Mar 2015
Edited: John D'Errico on 10 Mar 2015
Write the ellipse in a standard form.
U = [x,y,z]
U0 = [x0,y0,z0]
Then there exists a 3x3 matrix (I'll call it H) that defines the ellipse, such that
(U - U0)*H*(U-U0)' = 1
This is a classically standard form for an ellipse. A nice thing is it works in any number of dimensions. The requirements on H are that it be symmetric, non-negative definite. It will be positive definite if all of the axis lengths are strictly greater than zero.
So compute H from the given axis lengths and rotations. I'd suggest the simplest way to do so is by an eigenvalue decomposition. Thus the axis lengths define a 3x3 diagonal matrix containing the eigenvalues. (Well, actually, it looks like it would be the inverse of the squares of the axis lengths, but it is early in the morning here.) The use the rotations to define a set of orthogonal vectors. Then create the matrix H.
H = V*D*V'
If you insist on the coefficients of the expanded form, then just do a symbolic expansion of the quadratic form I gave you.
(U - U0)*H*(U-U0)' = 1
Personally, I'd suggest you don't need those coefficients, as you can do pretty much anything necessary from the quadratic form.
  2 Comments
Image Analyst
Image Analyst on 10 Mar 2015
I can imagine two cases. One case is where all of your data points are expected to be on the surface of the ellipse, and you want to get the "shell" of the ellipse. And another case where the points may be distributed anywhere inside a solid ellipse cluster and should not necessarily belong on the surface. Would these two cases be handled differently? Which case does Sebahattin's data points describe: the shell or the solid?
John D'Errico
John D'Errico on 10 Mar 2015
I told you how to do that. You say that you have rotation angles. The fact is, you might mean any of a wide variety of things by that statement.
However, you can use those angles as you have chosen to defined them to then rotate the cartesian axes to a new set of orthogonal vectors. Those vectors will be columns of the 3x3 matrix V. And I already told you how to form the diagonal matrix D.

Sign in to comment.

Categories

Find more on Computational Geometry in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!