| nvp2pl |
|
Table of contents
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