Документ взят из кэша поисковой машины. Адрес
оригинального документа
: 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