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

Abstract
I/O
Examples
Particulars
Required Reading
Version
Index_Entries

Abstract


   CSPICE_NPEDLN calculates the nearest point on a triaxial
   ellipsoid to a specified line, and the distance from the
   ellipsoid point to the line.

   For important details concerning this module's function, please refer to
   the CSPICE routine npedln_c.

I/O


   Given:

      a,
      b,
      c        the scalar double precision 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.

      linept   a double precision 3-vector.

      linedr   a double precision 3-vector.

               are, respectively, a point and a direction vector that define
               a line.  The line is the set of vectors

                     linept   +   t * linedr

                  where t is any real number.

   the call:

      cspice_npedln, a, b, c, linept, linedr, pnear, dist

   returns:

      pnear   a double precision 3-vector on the ellipsoid that is closest
              to the line, if the line doesn't intersect the ellipsoid.

              If the line intersects the ellipsoid, 'pnear' will be a point
              of intersection. If 'linept' is outside of the ellipsoid, 'pnear'
              will be the closest point of intersection. If 'linept' is
              inside the ellipsoid, 'pnear' will not necessarily be the
              closest point of intersection.

      dist    the scalar double precision distance of the line from the
              ellipsoid. This is the minimum distance between any point on
              the line and any point on the ellipsoid.

              If the line intersects the ellipsoid, 'dist' is zero.

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.

      ;;
      ;; We can find the distance between an instrument optic axis ray
      ;; and the surface of a body modeled as a tri-axial ellipsoid
      ;; using this routine.  If the instrument position and pointing
      ;; unit vector in body-fixed coordinates are:
      ;;
      linept = [ 1.0d6,  2.0d6,  3.0d6 ]
      linedr = [ -4.472091234d-1, -8.944182469d-1, -4.472091234d-3 ]

      ;;
      ;; The body semi-axes lengths:
      ;;
      a = 7.0d5
      b = 7.0d5
      c = 6.0d5

      ;;
      ;; The call to cspice_npedln yields a value for 'pnear', the nearest
      ;; point on the body to the optic axis ray and a value for 'dist',
      ;; the distance to the ray.
      ;;
      cspice_npedln, a, b, c, linept, linedr, pnear, dist

      print, pnear
      print, dist

   IDL outputs for pnear:

      -1633.3111   -3266.6222    599991.83

   IDL outputs for dist:

        2389967.9

Particulars


   For any ellipsoid and line, if the line does not intersect the
   ellipsoid, there is a unique point on the ellipsoid that is
   closest to the line.  Therefore, the distance dist between
   ellipsoid and line is well-defined.  The unique line segment of
   length dist that connects the line and ellipsoid is normal to
   both of these objects at its endpoints.

   If the line intersects the ellipsoid, the distance between the
   line and ellipsoid is zero.

Required Reading


   ICY.REQ
   ELLIPSES.REQ

Version


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

      Improved comments in the Examples section. Particulars section
      now parallels Mice version.

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

Index_Entries


   distance between line and ellipsoid
   distance between line of sight and body
   nearest point on ellipsoid to line




Wed Apr  5 17:58:02 2017