CSPICE_NVC2PL constructs a SPICE plane from a normal vector and a point
on the plane.
Given:
normal [3,1] = size(normal); double = class(normal)
point [3,1] = size(point); double = class(point)
are, respectively, a normal vector and point that
define a plane in threedimensional space. normal
need not be a unit vector. 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  point, normal > = 0.
the call:
plane = cspice_nvp2pl( normal, point )
returns:
plane a structure describing a SPICE plane defined by
'normal' and 'point'
[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)
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.; 5.; 3.5 ];
point = [ 9.; 0.65; 12. ];
%
% Create a plane from the vectors.
%
plane = cspice_nvp2pl( normal, point );
%
% Calculate a point in the plane, and
% two spanning vectors in the plane such that
% the point and spanning are mutually orthogonal.
%
[point, span1, span2] = cspice_pl2psv( plane )
%
% Test point, span1, and span2 orthogonality. The dot
% products of any two vectors should equal zero to
% within roundoff.
%
fprintf( 'dot( point, span1) = %18.15e\n', dot( point, span1) )
fprintf( 'dot( point, span2) = %18.15e\n', dot( point, span2) )
fprintf( 'dot( span1, span2) = %18.15e\n', dot( span1, span2) )
Matlab outputs:
point =
7.777777777777776e01
3.888888888888888e+00
2.722222222222222e+00
span1 =
0
5.734623443633283e01
8.192319205190405e01
span2 =
9.868415319342446e01
1.324619505952006e01
9.272336541664042e02
dot( point, span1) = 0.000000000000000e+00
dot( point, span2) = 5.551115123125783e17
dot( span1, span2) = 0.000000000000000e+00
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 nvp2pl_c.
MICE.REQ
PLANES.REQ
Mice Version 1.0.1, 27AUG2012, EDW (JPL)
Edited I/O section to conform to NAIF standard for Mice documentation.
Mice Version 1.0.0, 30DEC2008, EDW (JPL)
normal vector and point to plane
