|
Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.stsci.edu/~sontag/spicedocs/cspice/nvc2pl_c.html
Дата изменения: Sat Dec 17 06:09:23 2005 Дата индексирования: Mon Apr 11 00:05:41 2016 Кодировка: Поисковые слова: http astrokuban.info astrokuban |
Make a CSPICE plane from a normal vector and a constant.
PLANES
Variable I/O Description -------- --- -------------------------------------------------- normal, constant I A normal vector and constant defining a plane. plane O A CSPICE plane structure representing the plane.
normal,
constant are, respectively, a normal vector and constant
defining a plane. normal need not be a unit
vector. Let the symbol < a, b > indicate the
inner product of vectors a and b; then the
then the geometric plane is the set of vectors x
in three-dimensional space that satisfy
< x, normal > = constant.
plane is a CSPICE plane structure that represents the
geometric plane defined by normal and constant.
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 )
Any of these last three routines may be used to convert this
routine's output, plane, to another representation of a
geometric plane.
1) 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 );
No checking is done to prevent arithmetic overflow.
1) If the input vector normal is the zero vector, the error
SPICE(ZEROVECTOR) is signalled.
None.
N.J. Bachman (JPL)
[1] `Calculus and Analytic Geometry', Thomas and Finney.
-CSPICE Version 1.0.0, 01-MAR-1999 (NJB)
normal vector and constant to plane