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 three-dimensional 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, 06-FEB-2003 (EDW)
Trivial correction to header docs.
-CSPICE Version 1.0.0, 05-MAR-1999 (NJB)
plane to normal vector and constant
Link to routine pl2nvc_c source file pl2nvc_c.c
|