Equivalent ellipsoid of a set of 3D points.
ELL = equivalentEllipsoid(PTS)
Compute the equivalent ellipsoid of the set of points PTS. The result
is an ellipsoid defined by:
ELL = [XC YC ZC A B C PHI THETA PSI]
where [XC YC ZY] is the center, [A B C] are the lengths of the
semi-axes (in decreasing order), and [PHI THETA PSI] are Euler angles
representing the ellipsoid orientation, in degrees.
Example
pts = randn(300, 3);
pts = transformPoint3d(pts, createScaling3d([6 4 2]));
pts = transformPoint3d(pts, createRotationOx(pi/6));
pts = transformPoint3d(pts, createRotationOy(pi/4));
pts = transformPoint3d(pts, createRotationOz(pi/3));
pts = transformPoint3d(pts, createTranslation3d([5 4 3]));
elli = equivalentEllipsoid(pts);
figure; drawPoint3d(pts); axis equal;
hold on; drawEllipsoid(elli, ...
'drawEllipses', true, 'EllipseColor', 'b', 'EllipseWidth', 3);
See also
spheres, drawEllipsoid, equivalentEllipse, principalAxes
principalAxesTransform, rotation3dToEulerAngles
Package: matgeom