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
npelpt

Table of contents
Procedure
Abstract
Required_Reading
Keywords
Declarations
Brief_I/O
Detailed_Input
Detailed_Output
Parameters
Exceptions
Files
Particulars
Examples
Restrictions
Literature_References
Author_and_Institution
Version

Procedure

     NPELPT  ( Nearest point on ellipse to point )

     SUBROUTINE NPELPT ( POINT, ELLIPS, PNEAR, DIST )

Abstract

     Find the nearest point on an ellipse to a specified point, both
     in three-dimensional space, and find the distance between the
     ellipse and the point.

Required_Reading

     ELLIPSES

Keywords

     CONIC
     ELLIPSE
     GEOMETRY
     MATH

Declarations

     IMPLICIT NONE

     INTEGER               UBEL
     PARAMETER           ( UBEL    =   9 )

     DOUBLE PRECISION      ELLIPS ( UBEL )
     DOUBLE PRECISION      POINT  (    3 )
     DOUBLE PRECISION      PNEAR  (    3 )
     DOUBLE PRECISION      DIST

Brief_I/O

     VARIABLE  I/O  DESCRIPTION
     --------  ---  --------------------------------------------------
     POINT      I   Point whose distance to an ellipse is to be found.
     ELLIPS     I   A SPICE ellipse.
     PNEAR      O   Nearest point on ellipse to input point.
     DIST       O   Distance of input point to ellipse.

Detailed_Input

     POINT    is a point in 3-dimensional space.

     ELLIPS   is a SPICE ellipse that represents an ellipse
              in three-dimensional space.

Detailed_Output

     PNEAR    is the nearest point on ELLIPS to POINT.

     DIST     is the distance between POINT and PNEAR. This is
              the distance between POINT and the ellipse.

Parameters

     None.

Exceptions

     1)  If the input ellipse ELLIPS has one or both semi-axis lengths
         equal to zero, the error SPICE(DEGENERATECASE) is signaled.

     2)  If the geometric ellipse represented by ELLIPS does not
         have a unique point nearest to the input point, any point
         at which the minimum distance is attained may be returned
         in PNEAR.

     3)  If a ratio of non-zero ellipse radii violates the constraints
         imposed by NEARPT, an error is signaled by a routine in the
         call tree of this routine.

     4)  The routine does not check for overflow when scaling or
         translating the input point.

Files

     None.

Particulars

     Given an ellipse and a point in 3-dimensional space, if the
     orthogonal projection of the point onto the plane of the ellipse
     is on or outside of the ellipse, then there is a unique point on
     the ellipse closest to the original point. This routine finds
     that nearest point on the ellipse. If the projection falls inside
     the ellipse, there may be multiple points on the ellipse that are
     at the minimum distance from the original point. In this case,
     one such closest point will be returned.

     This routine returns a distance, rather than an altitude, in
     contrast to the SPICELIB routine NEARPT. Because our ellipse is
     situated in 3-space and not 2-space, the input point is not
     "inside" or "outside" the ellipse, so the notion of altitude does
     not apply to the problem solved by this routine. In the case of
     NEARPT, the input point is on, inside, or outside the ellipsoid,
     so it makes sense to speak of its altitude.

Examples

     1)  For planetary rings that can be modeled as flat disks with
         elliptical outer boundaries, the distance of a point in
         space from a ring's outer boundary can be computed using this
         routine. Suppose CENTER, SMAJOR, and SMINOR are the center,
         semi-major axis, and semi-minor axis of the ring's boundary.
         Suppose also that SCPOS is the position of a spacecraft.
         SCPOS, CENTER, SMAJOR, and SMINOR must all be expressed in
         the same coordinate system. We can find the distance from
         the spacecraft to the ring using the code fragment

            C
            C     Make a SPICE ellipse representing the ring,
            C     then use NPELPT to find the distance between
            C     the spacecraft position and RING.
            C
                  CALL CGV2EL ( CENTER, SMAJOR, SMINOR, RING )
                  CALL NPELPT ( SCPOS,  RING,   PNEAR,  DIST )


     2)  The problem of finding the distance of a line from a tri-axial
         ellipsoid can be reduced to the problem of finding the
         distance between the same line and an ellipse; this problem in
         turn can be reduced to the problem of finding the distance
         between an ellipse and a point. The routine NPEDLN carries
         out this process and uses NPELPT to find the ellipse-to-point
         distance.

Restrictions

     None.

Literature_References

     None.

Author_and_Institution

     N.J. Bachman       (JPL)
     J. Diaz del Rio    (ODC Space)
     W.L. Taber         (JPL)

Version

    SPICELIB Version 1.3.0, 24-AUG-2021 (JDR) (NJB)

        Added IMPLICT NONE statement.

        Edited the header to comply with NAIF standard.

        Added entries #3 and #4 to $Exceptions section.

    SPICELIB Version 1.2.0, 02-SEP-2005 (NJB)

        Updated to remove non-standard use of duplicate arguments
        in VADD, VSCL, MTXV and MXV calls.

    SPICELIB Version 1.0.1, 10-MAR-1992 (WLT)

        Comment section for permuted index source lines was added
        following the header.

    SPICELIB Version 1.0.0, 02-NOV-1990 (NJB)
Fri Dec 31 18:36:35 2021