CSPICE_PLTEXP expands a triangular plate by a specified amount.
The expanded plate is coplanar with, and has the same orientation as,
the original. The centroids of the two plates coincide.
Given:
iverts an array containing three vertices of a triangular
plate. Each vertex is a threedimensional vector. The
elements
[3,3] = size(iverts); double = class(iverts)
delta a fraction by which the plate is to be scaled.
Scaling is done so that the scaled plate has the
following properties:
 it is coplanar with the input plate
 its centroid coincides with that of the input
plate
 its sides remain parallel to the corresponding
sides of the input plate
 the distance of each vertex from the centroid is
(1+delta) times the corresponding distance for
the input plate
[1,1] = size(delta); double = class(delta)
the call:
overts = cspice_pltexp( iverts, delta)
returns:
overts an array containing three vertices of the triangular
plate resulting from scaling the input plate.
If `ctroid' is the centroid (the average of the vertices)
of the input plate, then the jth vertex of `overts'
overts(i,j), i = 1 ... 3
is equal to
ctroid(i) + (1+delta)*( iverts(i,j)  ctroid(i) ),
i = 1 ... 3
[3,3] = size(overts); double = class(overts)
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.
function pltexp_t
s = sqrt( 3.0 ) / 2.0;
iverts = [ [ s; 0.5; 7.0] [ 0.0; 1.0; 7.0] [ s; 0.5; 7.0] ];
delta = 1.0;
overts = cspice_pltexp ( iverts, delta );
fprintf ( '\nVertices of input plate: \n')
fprintf ( ' I1 = %20.12f %20.12f %20.12f\n', iverts(:,1) )
fprintf ( ' I2 = %20.12f %20.12f %20.12f\n', iverts(:,2) )
fprintf ( ' I3 = %20.12f %20.12f %20.12f\n', iverts(:,3) )
fprintf ( '\nVertices of output plate: \n')
fprintf ( ' O1 = %20.12f %20.12f %20.12f\n', overts(:,1) )
fprintf ( ' O2 = %20.12f %20.12f %20.12f\n', overts(:,2) )
fprintf ( ' O3 = %20.12f %20.12f %20.12f\n', overts(:,3) )
MATLAB outputs:
Vertices of input plate:
I1 = 0.866025403784 0.500000000000 7.000000000000
I2 = 0.000000000000 1.000000000000 7.000000000000
I3 = 0.866025403784 0.500000000000 7.000000000000
Vertices of output plate:
O1 = 1.732050807569 1.000000000000 7.000000000000
O2 = 0.000000000000 2.000000000000 7.000000000000
O3 = 1.732050807569 1.000000000000 7.000000000000
This routine supports "greedy" rayplate intercept algorithms.
Such algorithms attempt to ensure that false negativesin which
an intersection is not found due to roundoff errordo not
occur. In such an algorithm, the plate of interest is expanded
slightly before the intersection test is performed.
For important details concerning this module's function, please refer to
the CSPICE routine pltexp_c.
MICE.REQ
Mice Version 1.0.0, 28NOV2016, EDW (JPL)
expand triangular plate
