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_pjelpl

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


Abstract


   CSPICE_PJELPL projects orthogonally an ellipse onto a plane.

I/O


   Given:

      elin,
      plane    respectively, a SPICE ellipse and a SPICE plane.

               help, elin
                  STRUCT = CSPICE_ELLIPSE

               The structure has the fields:

                  center:    [3-array double]
                  semiMajor: [3-array double]
                  semiMinor: [3-array double]

               help, plane
                  STRUCT = CSPICE_PLANE

               The structure has the fields:

                  normal:   [3-array double]
                  constant: [scalar double]

               The geometric ellipse represented by elin' is to be
               orthogonally projected onto the geometric plane represented
               by 'plane'.

   the call:

      cspice_pjelpl, elin, plane, elout

   returns:

      elout    the SPICE ellipse structure that represents the geometric
               ellipse resulting from orthogonally projecting the ellipse
               represented by `elin' onto the plane represented by `plane'.

               help, elout
                  STRUCT = CSPICE_ELLIPSE

               The structure has the fields:

                  center:    [3-array double]
                  semiMajor: [3-array double]
                  semiMinor: [3-array double]

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) Given an ellipse and a plane, compute the projection of the
      ellipse on the plane.

      Example code begins here.


      PRO pjelpl_ex1

         ;;
         ;; Assign the values for plane/ellipse definition
         ;; vectors.
         ;;
         center  = [ 1.d,  1.d,  1.d ]
         vect1   = [ 2.d,  0.d,  0.d ]
         vect2   = [ 0.d,  1.d,  1.d ]
         normal  = [ 0.d,  0.d,  1.d ]

         ;;
         ;; Create a plane using a constant value of 0...
         ;;
         cspice_nvc2pl, normal, 0.d, plane

         ;;
         ;; ...and an ellipse.
         ;;
         cspice_cgv2el, center, vect1, vect2, elin

         ;;
         ;; Project the ellipse onto the plane.
         ;;
         cspice_pjelpl, elin, plane, elout

         ;;
         ;; Output the ellipse in the plane.
         ;;
         print, 'Center    : ', elout.center
         print, 'Semi-minor: ', elout.semiminor
         print, 'Semi-major: ', elout.semimajor

      END


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


      Center    :        1.0000000       1.0000000       0.0000000
      Semi-minor:        0.0000000       1.0000000       0.0000000
      Semi-major:        2.0000000       0.0000000       0.0000000


Particulars


   Projecting an ellipse orthogonally onto a plane can be thought of
   finding the points on the plane that are `under' or `over' the
   ellipse, with the `up' direction considered to be perpendicular
   to the plane. More mathematically, the orthogonal projection is
   the set of points Y in the plane such that for some point X in
   the ellipse, the vector Y - X is perpendicular to the plane.
   The orthogonal projection of an ellipse onto a plane yields
   another ellipse.

Exceptions


   1)  If the input plane is invalid, an error is signaled by a
       routine in the call tree of this routine.

   2)  The input ellipse may be degenerate--its semi-axes may be
       linearly dependent. Such ellipses are allowed as inputs.

   3)  The ellipse resulting from orthogonally projecting the input
       ellipse onto a plane may be degenerate, even if the input
       ellipse is not.

   4)  If any of the input arguments, `elin' or `plane', is
       undefined, an error is signaled by the IDL error handling
       system.

   5)  If any of the input arguments, `elin' or `plane', is not of
       the expected type, or it does not have the expected dimensions
       and size, an error is signaled by the Icy interface.

   6)  If the output argument `elout' is not a named variable, an
       error is signaled by the Icy interface.

Files


   None.

Restrictions


   None.

Required_Reading


   ICY.REQ
   ELLIPSES.REQ
   PLANES.REQ

Literature_References


   None.

Author_and_Institution


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

Version


   -Icy Version 1.0.2, 27-AUG-2021 (JDR)

       Edited the header to comply with NAIF standard. Added example's
       problem statement.

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

       Removed reference to the routine's corresponding CSPICE header from
       -Abstract section.

       Added arguments' type and size information in the -I/O section.

   -Icy Version 1.0.1, 13-JUN-2011 (EDW)

       Edits to comply with NAIF standard for Icy headers. -Particulars
       section now parallels Mice version.

   -Icy Version 1.0.0, 16-JUN-2003 (EDW)

Index_Entries


   project ellipse onto plane



Fri Dec 31 18:43:06 2021