Make a CSPICE plane from a point and two spanning vectors.
Variable I/O Description -------- --- -------------------------------------------------- point, span1, span2 I A point and two spanning vectors defining a plane. plane O A CSPICE plane representing the plane.
point, span1, span2 are, respectively, a point and two spanning vectors that define a geometric plane in three-dimensional space. The plane is the set of vectors point + s * span1 + t * span2 where s and t are real numbers. The spanning vectors span1 and span2 must be linearly independent, but they need not be orthogonal or unitized.
plane is a CSPICE plane that represents the geometric plane defined by point, span1, and span2.
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) Project a vector v orthogonally onto a plane defined by point, span1, and span2. proj is the projection we want; it is the closest vector in the plane to v. psv2pl_c ( point, span1, span2, &plane ); vprjp_c ( v, &plane, proj ); 2) Find the plane determined by a spacecraft's position vector relative to a central body and the spacecraft's velocity vector. We assume that all vectors are given in the same coordinate system. /. pos is the spacecraft's position, relative to the central body. vel is the spacecraft's velocity vector. pos is a point (vector, if you like) in the orbit plane, and it is also one of the spanning vectors of the plane. ./ psv2pl_c ( pos, pos, vel, &plane );
1) If span1 and span2 are linearly dependent, then the vectors point, span1, and span2 do not define a plane. The error SPICE(DEGENERATECASE) is signaled.
N.J. Bachman (JPL)
 `Calculus and Analytic Geometry', Thomas and Finney.
-CSPICE Version 1.0.0, 05-MAR-1999 (NJB)
point and spanning vectors to plane