CSPICE_EDLIMB calculates the limb of a triaxial ellipsoid
as viewed from a specified location.
c [1,1] = size(a); double = class(a)
[1,1] = size(b); double = class(b)
[1,1] = size(c); double = class(c)
are the lengths of the semi-axes of a triaxial ellipsoid.
The ellipsoid is centered at the origin and oriented so that
its axes lie on the x, y and z axes. 'a', 'b', and 'c' are
the lengths of the semi-axes that respectively point in the
x, y, and z directions.
viewpt a point from which the ellipsoid is viewed. 'viewpt' must be
outside of the ellipsoid.
[3,1] = size(viewpt); double = class(viewpt)
limb = cspice_edlimb( a, b, c, viewpt )
limb the SPICE ellipse that represents the limb of the ellipsoid
observed from 'viewpt'.
[1,1] = size(limb); struct = class(limb)
The structure has the fields:
center: [3x1 double]
semiMajor: [3x1 double]
semiMinor: [3x1 double]
Any numerical results shown for this example may differ between
platforms as the results depend on the SPICE kernels used as input
and the machine specific arithmetic implementation.
% Define an ellipsoid
a = sqrt(2.);
b = 2.*sqrt(2.);
c = sqrt(2.);
% Locate a viewpoint exterior to the ellipsoid.
viewpt = [ 2., 0., 0. ]';
% Calculate the limb ellipse as seen by from the viewpoint.
limb = cspice_edlimb( a, b, c, viewpt );
% Output the structure components.
smin = limb.semiMinor
smaj = limb.semiMajor
center = limb.center
% Check against expected values:
% Semiminor: 0., 0., -1.
% Semimajor: 0., 2., 0.
% Center : 1., 0., 0.
The limb of a body, as seen from a viewing point, is the boundary
of the portion of the body's surface that is visible from that
viewing point. In this definition, we consider a surface point
to be `visible' if it can be connected to the viewing point by a
line segment that doesn't pass through the body. This is a purely
geometrical definition that ignores the matter of which portions
of the surface are illuminated, or whether the view is obscured by
any additional objects.
If a body is modeled as a triaxial ellipsoid, the limb is always
an ellipse. The limb is determined by its center, a semi-major
axis vector, and a semi-minor axis vector.
We note that the problem of finding the limb of a triaxial
ellipsoid is mathematically identical to that of finding its
terminator, if one makes the simplifying assumption that the
terminator is the limb of the body as seen from the vertex of the
umbra. So, this routine can be used to solve this simplified
version of the problem of finding the terminator.
For important details concerning this module's function, please refer to
the CSPICE routine edlimb_c.
-Mice Version 1.0.0, 09-NOV-2012, EDW (JPL), SCK (JPL)