void pl2nvc_c ( ConstSpicePlane * plane,
SpiceDouble normal[3],
SpiceDouble * constant )
Return a unit normal vector and constant that define a specified
plane.
PLANES
GEOMETRY
MATH
PLANE
Variable I/O Description
  
plane I A CSPICE plane.
normal,
constant O A normal vector and constant defining the
geometric plane represented by plane.
plane is a CSPICE plane.
normal,
constant are, respectively, a unit normal vector and
constant that define the geometric plane
represented by plane. 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 threedimensional space that satisfy
< x, normal > = constant.
normal is a unit vector. constant is the distance of
the plane from the origin;
constant * normal
is the closest point in the plane to the origin.
None.
Error free.
1) The input plane MUST have been created by one of the CSPICE
routines
nvc2pl_c ( Normal vector and constant to plane )
nvp2pl_c ( Normal vector and point to plane )
psv2pl_c ( Point and spanning vectors to plane )
Otherwise, the results of this routine are unpredictable.
None.
CSPICE 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 CSPICE routines that produce CSPICE planes from data that
define a plane are:
nvc2pl_c ( Normal vector and constant to plane )
nvp2pl_c ( Normal vector and point to plane )
psv2pl_c ( Point and spanning vectors to plane )
The CSPICE routines that convert CSPICE planes to data that
define a plane are:
pl2nvc_c ( Plane to normal vector and constant )
pl2nvp_c ( Plane to normal vector and point )
pl2psv_c ( Plane to point and spanning vectors )
1) 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 is the distance of the plane from the origin.
nvp2pl_c ( normal, point, &plane );
pl2nvc_c ( &plane, normal, &constant );
2) Apply a linear transformation represented by the matrix m to
a plane represented by the normal vector n and the constant c.
Find a normal vector and constant for the transformed plane.
/.
Make a CSPICE plane from n and c, and then find a
point in the plane and spanning vectors for the
plane. n need not be a unit vector.
./
nvc2pl_c ( n, c, &plane );
pl2psv_c ( &plane, point, span1, span2 );
/.
Apply the linear transformation to the point and
spanning vectors. All we need to do is multiply
these vectors by m, since for any linear
transformation T,
T ( point + t1 * span1 + t2 * span2 )
= T (point) + t1 * T(span1) + t2 * T(span2),
which means that T(point), T(span1), and T(span2)
are a point and spanning vectors for the transformed
plane.
./
mxv_c ( m, point, tpoint );
mxv_c ( m, span1, tspan1 );
mxv_c ( m, span2, tspan2 );
/.
Make a new CSPICE plane tplane from the
transformed point and spanning vectors, and find a
unit normal and constant for this new plane.
./
psv2pl_c ( tpoint, tspan1, tspan2, &tplane );
pl2nvc_c ( &tplane, tn, &tc );
None.
[1] `Calculus and Analytic Geometry', Thomas and Finney.
N.J. Bachman (JPL)
CSPICE Version 1.0.1, 06FEB2003 (EDW)
Trivial correction to header docs.
CSPICE Version 1.0.0, 05MAR1999 (NJB)
plane to normal vector and constant
