cspice_pl2psv

 Abstract I/O Examples Particulars Required Reading Version Index_Entries
```
```

#### Abstract

```
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.

```

#### I/O

```
Given:

plane   a structure describing a SPICE plane. The structure has
the fields:

normal:   [3-array double]
constant: [scalar double]

the call:

cspice_pl2psv, plane, point, span1, span2

returns:

point    a double precision 3-vector

span1    a double precision 3-vector

span2    a double precision 3-vector

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.

```

#### Examples

```
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 round-off.
;;
print, cspice_vdot( point, span1)
print, cspice_vdot( point, span2)
print, cspice_vdot( span1, span2)

IDL outputs for cspice_vdot( point, span1):  -9.3277315e-17

IDL outputs for cspice_vdot( point, span2):   6.8201565e-17

IDL outputs for cspice_vdot( span1, span2):   6.2390956e-18

```

#### Particulars

```
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

```

#### Version

```
-Icy Version 1.0.1, 16-AUG-2010, EDW (JPL)

Expanded and improved I/O and Particulars sections.

-Icy Version 1.0.0, 16-JUN-2003, EDW (JPL)

```

#### Index_Entries

```
plane to point and spanning vectors

```
`Wed Apr  5 17:58:02 2017`