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
nvp2pl

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

     NVP2PL ( Normal vector and point to plane )

     SUBROUTINE NVP2PL ( NORMAL, POINT, PLANE )

Abstract

     Make a SPICE plane from a normal vector and a point.

Required_Reading

     PLANES

Keywords

     GEOMETRY
     MATH
     PLANE

Declarations

     IMPLICIT NONE

     INTEGER               UBPL
     PARAMETER           ( UBPL    =   4 )

     DOUBLE PRECISION      NORMAL (    3 )
     DOUBLE PRECISION      POINT  (    3 )
     DOUBLE PRECISION      PLANE  ( UBPL )

Brief_I/O

     VARIABLE  I/O  DESCRIPTION
     --------  ---  --------------------------------------------------
     NORMAL,
     POINT      I   A normal vector and a point defining a plane.
     PLANE      O   An array representing the plane.

Detailed_Input

     NORMAL,
     POINT    are, respectively, a normal vector and point that
              define a plane in three-dimensional space. NORMAL
              need not be a unit vector. Let the symbol < a, b >
              indicate the inner product of vectors a and b;
              then the geometric plane is the set of vectors X
              in three-dimensional space that satisfy

                 < X - POINT, NORMAL >  =  0.

Detailed_Output

     PLANE    is a SPICE plane that represents the geometric
              plane defined by POINT and NORMAL.

Parameters

     None.

Exceptions

     1)  If the input vector NORMAL is the zero vector, the error
         SPICE(ZEROVECTOR) is signaled.

Files

     None.

Particulars

     SPICELIB geometry routines that deal with planes use the `plane'
     data type to represent input and output planes. This data type
     makes the subroutine interfaces simpler and more uniform.

     The SPICELIB routines that produce SPICE planes from data that
     define a plane are:

        NVC2PL ( Normal vector and constant to plane )
        NVP2PL ( Normal vector and point to plane    )
        PSV2PL ( Point and spanning vectors to plane )

     The SPICELIB routines that convert SPICE planes to data that
     define a plane are:

        PL2NVC ( Plane to normal vector and constant )
        PL2NVP ( Plane to normal vector and point    )
        PL2PSV ( Plane to point and spanning vectors )

     Any of these last three routines may be used to convert this
     routine's output, PLANE, to another representation of a
     geometric plane.

Examples

     1)  Project a vector V orthogonally onto a plane defined by POINT
         and NORMAL. PROJ is the projection we want; it is the
         closest vector in the plane to V.

            CALL NVP2PL ( NORMAL, POINT,  PLANE )
            CALL VPRJP  ( V,      PLANE,  PROJ  )


     2)  Given a point in a plane and a normal vector, find the
         distance of the plane from the origin. We make a
         `plane' from the point and normal, then convert the
         plane to a unit normal and constant. The constant CONST
         is (according to the specification of PL2NVC) the distance of
         the plane from the origin.

            CALL NVP2PL ( NORMAL, POINT,  PLANE )
            CALL PL2NVC ( PLANE,  NORMAL, CONST )

Restrictions

     None.

Literature_References

     [1]  G. Thomas and R. Finney, "Calculus and Analytic Geometry,"
          7th Edition, Addison Wesley, 1988.

Author_and_Institution

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

Version

    SPICELIB Version 1.2.0, 24-AUG-2021 (JDR)

        Added IMPILCIT NONE statement.

        Edited the header to comply with NAIF standard.

    SPICELIB Version 1.1.0, 30-AUG-2005 (NJB)

        Updated to remove non-standard use of duplicate arguments
        in VMINUS call.

    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, 01-NOV-1990 (NJB)
Fri Dec 31 18:36:36 2021