Index Page
vprjp_c
A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X 

Procedure
Abstract
Required_Reading
Keywords
Brief_I/O
Detailed_Input
Detailed_Output
Parameters
Exceptions
Files
Particulars
Examples
Restrictions
Literature_References
Author_and_Institution
Version
Index_Entries

Procedure

   void vprjp_c ( ConstSpiceDouble    vin   [3],
                  ConstSpicePlane   * plane,
                  SpiceDouble         vout  [3] ) 

Abstract

 
   Project a vector onto a specified plane, orthogonally. 
 

Required_Reading

 
   PLANES 
 

Keywords

 
   GEOMETRY 
   MATH 
   PLANE 
   VECTOR 
 

Brief_I/O

 
   Variable  I/O  Description 
   --------  ---  -------------------------------------------------- 
   vin        I   Vector to be projected. 
   plane      I   A CSPICE plane onto which vin is projected. 
   vout       O   Vector resulting from projection. 
 

Detailed_Input

 
   vin            is a 3-vector that is to be orthogonally projected 
                  onto a specified plane. 
 
   plane          is a CSPICE plane that represents the geometric 
                  plane onto which vin is to be projected. 
 

Detailed_Output

 
   vout           is the vector resulting from the orthogonal 
                  projection of vin onto plane.  vout is the closest 
                  point in the specified plane to vin. 
 

Parameters

 
   None. 
 

Exceptions

 
   1)  Invalid input planes are diagnosed by the routine pl2nvc_c, 
       which is called by this routine. 
 

Files

 
   None. 
 

Particulars

 
   Projecting a vector v orthogonally onto a plane can be thought of 
   as finding the closest vector in the plane to v.  This `closest 
   vector' always exists; it may be coincident with the original 
   vector. 
 
   Two related routines are vprjpi_c, which inverts an orthogonal 
   projection of a vector onto a plane, and vproj_c, which projects 
   a vector orthogonally onto another vector. 
 

Examples

 
   1)   Find the closest point in the ring plane of a planet to a 
        spacecraft located at positn (in body-fixed coordinates). 
        Suppose the vector normal is normal to the ring plane, and 
        that origin, which represents the body center, is in the 
        ring plane.  Then we can make a `plane' with the code 
 
           nvp2pl_c ( normal, origin, &plane ); 
 
        can find the projection by making the call 
 
           vprjp_c ( positn, &plane, proj ); 
 

Restrictions

 
   None. 
 

Literature_References

 
   [1] `Calculus and Analytic Geometry', Thomas and Finney. 
 

Author_and_Institution

 
   N.J. Bachman   (JPL) 
   B.V. Semenov   (JPL)
 

Version

 
   -CSPICE Version 1.0.1, 01-FEB-2017 (BVS)

       Typo fix: pnv2pl_c -> nvp2pl_c.

   -CSPICE Version 1.0.0, 05-MAR-1999 (NJB)

Index_Entries

 
   vector projection onto plane 
 

Link to routine vprjp_c source file vprjp_c.c

Wed Apr  5 17:54:47 2017