CSPICE_PL2PSV returns a point and two orthogonal spanning vectors that
generate a specified plane.
For important details concerning this module's function, please refer to
the CSPICE routine pl2psv_c.
Given:
plane a structure describing a SPICE plane. The structure has
the fields:
normal: [3array double]
constant: [scalar double]
the call:
cspice_pl2psv, plane, point, span1, span2
returns:
point a double precision 3vector
span1 a double precision 3vector
span2 a double precision 3vector
are, respectively, a point and two orthogonal
spanning vectors that generate the geometric plane
represented by plane. The geometric plane is the
set of vectors
point + s * span1 + t * span2
where s and t are real numbers. 'point' is the closest
point in the plane to the origin; this point is
always a multiple of the plane's normal vector.
'span1' and 'span2' are an orthonormal pair of
vectors. 'point', 'span1', and 'span2' are mutually
orthogonal.
Any numerical results shown for this example may differ between
platforms as the results depend on the SPICE kernels used as input
and the machine specific arithmetic implementation.
;;
;; Define a normal vector from a plane and a
;; point in a plane.
;;
normal = [ 1.d, 5.d , 3.5d ]
point = [ 9.d, 0.65d, 12.d ]
;;
;; Create a SPICE plane from the vectors.
;;
cspice_nvp2pl, normal, point, plane
;;
;; Calculate a point in the plane, and
;; two spanning vectors in the plane such that
;; the point and spanning are mutually orthogonal.
;;
cspice_pl2psv, plane, point, span1, span2
;;
;; Test point, span1, and span2 orthogonality. The dot
;; products of any two vectors should equal zero to
;; within roundoff.
;;
print, cspice_vdot( point, span1)
print, cspice_vdot( point, span2)
print, cspice_vdot( span1, span2)
IDL outputs for cspice_vdot( point, span1): 9.3277315e17
IDL outputs for cspice_vdot( point, span2): 6.8201565e17
IDL outputs for cspice_vdot( span1, span2): 6.2390956e18
Icy 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 Icy routines that produce SPICE planes from data that
define a plane are:
cspice_nvc2pl ( Normal vector and constant to plane )
cspice_nvp2pl ( Normal vector and point to plane )
cspice_psv2pl ( Point and spanning vectors to plane )
The Icy routines that convert SPICE planes to data that
define a plane are:
cspice_pl2nvc ( Plane to normal vector and constant )
cspice_pl2nvp ( Plane to normal vector and point )
cspice_pl2psv ( 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.
ICY.REQ
PLANES.REQ
Icy Version 1.0.1, 16AUG2010, EDW (JPL)
Expanded and improved I/O and Particulars sections.
Icy Version 1.0.0, 16JUN2003, EDW (JPL)
plane to point and spanning vectors
