Index of Functions: A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X 
Index Page
cspice_saelgv

Table of contents
Abstract
I/O
Parameters
Examples
Particulars
Exceptions
Files
Restrictions
Required_Reading
Literature_References
Author_and_Institution
Version
Index_Entries

Abstract


   CSPICE_SAELGV calculates the semi-axis vectors of an ellipse generated
   by two arbitrary three-dimensional vectors.

I/O


   Given:

      vec1,
      vec2   the two vectors defining an ellipse (the generating vectors).

             [3,1]   = size(vec1); double = class(vec1)
             [3,1]   = size(vec2); double = class(vec2)

             The ellipse is the set of points

                center  +  cos(theta) vec1  +  sin(theta) vec2

             where theta ranges over the interval (-pi, pi] and
             center is an arbitrary point at which the ellipse
             is centered. An ellipse's semi-axes are
             independent of its center, so the vector center
             shown above is not an input to this routine.

             'vec1' and 'vec2' need not be linearly independent;
             degenerate input ellipses are allowed.

   the call:

      [ smajor, sminor ] = cspice_saelgv( vec1, vec2 )

   returns:

      smajor   the semi-major axis of the ellipse.

               [3,1]   = size(smajor); double = class(smajor)

      sminor   the semi-minor axis of the ellipse.

               [3,1]   = size(sminor); double = class(sminor)

Parameters


   None.

Examples


   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.

   1) Define two arbitrary, linearly independent, vectors and
      calculate the semi-major and semi-minor axes of the elipse
      generated by them.

      Example code begins here.


      function saelgv_ex1()

         %
         % Define two arbitrary, linearly independent, vectors.
         %
         vec1 = [ 1;  1; 1 ];
         vec2 = [ 1; -1; 1 ];

         %
         % Calculate the semi-major and semi-minor axes of an
         % ellipse generated by the two vectors.
         %
         [smajor, sminor] = cspice_saelgv( vec1, vec2 );
         fprintf( 'Semi-major axis: %12.8f %12.8f %12.8f\n', smajor);
         fprintf( 'Semi-minor axis: %12.8f %12.8f %12.8f\n', sminor);


      When this program was executed on a Mac/Intel/Octave6.x/64-bit
      platform, the output was:


      Semi-major axis:   1.41421356  -0.00000000   1.41421356
      Semi-minor axis:   0.00000000   1.41421356   0.00000000


Particulars


   We note here that two linearly independent but not necessarily
   orthogonal vectors vec1 and vec2 can define an ellipse
   centered at the origin: the ellipse is the set of points in
   3-space

      center  +  cos(theta) vec1  +  sin(theta) vec2

   where theta is in the interval (-pi, pi] and center is an
   arbitrary point at which the ellipse is centered.

   This routine finds vectors that constitute semi-axes of an
   ellipse that is defined, except for the location of its center,
   by vec1 and vec2. The semi-major axis is a vector of largest
   possible magnitude in the set

      cos(theta) vec1  +  sin(theta) vec2

   There are two such vectors; they are additive inverses of each
   other. The semi-minor axis is an analogous vector of smallest
   possible magnitude. The semi-major and semi-minor axes are
   orthogonal to each other. If smajor and sminor are choices of
   semi-major and semi-minor axes, then the input ellipse can also
   be represented as the set of points

      center  +  cos(theta) smajor  +  sin(theta) sminor

   where theta is in the interval (-pi, pi].

   The capability of finding the axes of an ellipse is useful in
   finding the image of an ellipse under a linear transformation.
   Finding this image is useful for determining the orthogonal and
   gnomonic projections of an ellipse, and also for finding the limb
   and terminator of an ellipsoidal body.

Exceptions


   1)  If one or more semi-axes of the ellipse is found to be the
       zero vector, the input ellipse is degenerate. This case is
       not treated as an error; the calling program must determine
       whether the semi-axes are suitable for the program's intended
       use.

   2)  If any of the input arguments, `vec1' or `vec2', is undefined,
       an error is signaled by the Matlab error handling system.

   3)  If any of the input arguments, `vec1' or `vec2', is not of the
       expected type, or it does not have the expected dimensions and
       size, an error is signaled by the Mice interface.

Files


   None.

Restrictions


   None.

Required_Reading


   MICE.REQ
   ELLIPSES.REQ

Literature_References


   [1]  T. Apostol, "Calculus, Vol. II," chapter 5, "Eigenvalues of
        Operators Acting on Euclidean Spaces," John Wiley & Sons,
        1969.

Author_and_Institution


   J. Diaz del Rio     (ODC Space)
   E.D. Wright         (JPL)

Version


   -Mice Version 1.1.0, 10-AUG-2021 (EDW) (JDR)

       Edited the -Examples section to comply with NAIF standard.
       Reformatted example's output and added problem statement.

       Added -Parameters, -Exceptions, -Files, -Restrictions,
       -Literature_References and -Author_and_Institution sections.

       Eliminated use of "lasterror" in rethrow.

       Removed reference to the function's corresponding CSPICE header from
       -Required_Reading section.

   -Mice Version 1.0.1, 23-MAR-2015 (EDW)

       Edited -I/O section to conform to NAIF standard for Mice
       documentation.

   -Mice Version 1.0.0, 07-MAY-2008 (EDW)

Index_Entries


   semi-axes of ellipse from generating vectors


Fri Dec 31 18:44:26 2021