cspice_pl2nvc

 Abstract I/O Examples Particulars Required Reading Version Index_Entries

#### Abstract

```
CSPICE_PL2NVC returns a unit normal vector and constant defining
a specified plane.

```

#### I/O

```
Given:

plane   a structure describing a SPICE plane.

[1,1] = size(plane); struct = class(plane)

The structure has the fields:

normal:     [3,1] = size(normal); double = class(normal)
constant:   [1,1] = size(constant); double = class(constant)

the call:

[normal, constant] = cspice_pl2nvc( plane )

returns:

normal     [3,1] = size(normal); double = class(normal)

constant   [1,1] = size(constant); double = class(constant)

are, respectively, a unit normal vector and
constant that define the geometric plane
represented by 'plane'.  Let the symbol < a, b >
indicate the inner product of vectors a and b; then
the geometric plane is the set of vectors x in
three-dimensional space that satisfy

< x,  normal >  =  constant.

'normal' is a unit vector. 'constant' is the distance
of the plane from the origin;

constant * normal

is the closest point in the plane to the origin.

```

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

%
% A simple task, determine the distance of a plane
% from the origin.
%
% Define the plane with a vector normal to the plane
% and a point in the plane.
%
normal = [ -1.;  5.;    -3.5 ];
point  = [  9.; -0.65;  -12. ];

%
% create the SPICE plane from the normal and constant.
%
plane = cspice_nvp2pl( normal, point );

%
% Calculate the normal vector and constant defining
% the plane. The constant value is the distance from
% the origin to the plane.
%
[normal, constant ] = cspice_pl2nvc( plane )

%
% Confirm the results. Calculate a vector
% from the origin to the plane.
%
vec = constant * normal;

%
% Now calculate a vector in the plane from the
% location in the plane defined by 'vec'.
%
plane_vec = vec - point;

%
% These vectors should be orthogonal.
%
dot( plane_vec, vec )

MATLAB outputs:

normal =

-1.616904166908886e-01
8.084520834544432e-01
-5.659164584181102e-01

constant =

4.810289896553937e+00

The dot product result to check orthogonality...

ans =

-3.552713678800501e-15

Zero, to double precision round-off, so orthogonal to that
precision.

```

#### Particulars

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

```

#### Required Reading

```
For important details concerning this module's function, please refer to
the CSPICE routine pl2nvc_c.

MICE.REQ
PLANES.REQ

```

#### Version

```
-Mice Version 1.0.0, 27-AUG-2012, EDW (JPL)

```

#### Index_Entries

```
plane to normal vector and constant

```
`Wed Apr  5 18:00:34 2017`