CSPICE_PL2NVC returns a unit normal vector and constant defining
a specified plane.
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
threedimensional 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.
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.616904166908886e01
8.084520834544432e01
5.659164584181102e01
constant =
4.810289896553937e+00
The dot product result to check orthogonality...
ans =
3.552713678800501e15
Zero, to double precision roundoff, so orthogonal to that
precision.
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.
For important details concerning this module's function, please refer to
the CSPICE routine pl2nvc_c.
MICE.REQ
PLANES.REQ
Mice Version 1.0.0, 27AUG2012, EDW (JPL)
plane to normal vector and constant
