Table of contents
CSPICE_PJELPL projects orthogonally an ellipse onto a plane.
Given:
elin,
plane respectively, a SPICE ellipse and a SPICE plane.
help, elin
STRUCT = CSPICE_ELLIPSE
The structure has the fields:
center: [3-array double]
semiMajor: [3-array double]
semiMinor: [3-array double]
help, plane
STRUCT = CSPICE_PLANE
The structure has the fields:
normal: [3-array double]
constant: [scalar double]
The geometric ellipse represented by elin' is to be
orthogonally projected onto the geometric plane represented
by 'plane'.
the call:
cspice_pjelpl, elin, plane, elout
returns:
elout the SPICE ellipse structure that represents the geometric
ellipse resulting from orthogonally projecting the ellipse
represented by `elin' onto the plane represented by `plane'.
help, elout
STRUCT = CSPICE_ELLIPSE
The structure has the fields:
center: [3-array double]
semiMajor: [3-array double]
semiMinor: [3-array double]
None.
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.
1) Given an ellipse and a plane, compute the projection of the
ellipse on the plane.
Example code begins here.
PRO pjelpl_ex1
;;
;; Assign the values for plane/ellipse definition
;; vectors.
;;
center = [ 1.d, 1.d, 1.d ]
vect1 = [ 2.d, 0.d, 0.d ]
vect2 = [ 0.d, 1.d, 1.d ]
normal = [ 0.d, 0.d, 1.d ]
;;
;; Create a plane using a constant value of 0...
;;
cspice_nvc2pl, normal, 0.d, plane
;;
;; ...and an ellipse.
;;
cspice_cgv2el, center, vect1, vect2, elin
;;
;; Project the ellipse onto the plane.
;;
cspice_pjelpl, elin, plane, elout
;;
;; Output the ellipse in the plane.
;;
print, 'Center : ', elout.center
print, 'Semi-minor: ', elout.semiminor
print, 'Semi-major: ', elout.semimajor
END
When this program was executed on a Mac/Intel/IDL8.x/64-bit
platform, the output was:
Center : 1.0000000 1.0000000 0.0000000
Semi-minor: 0.0000000 1.0000000 0.0000000
Semi-major: 2.0000000 0.0000000 0.0000000
Projecting an ellipse orthogonally onto a plane can be thought of
finding the points on the plane that are `under' or `over' the
ellipse, with the `up' direction considered to be perpendicular
to the plane. More mathematically, the orthogonal projection is
the set of points Y in the plane such that for some point X in
the ellipse, the vector Y - X is perpendicular to the plane.
The orthogonal projection of an ellipse onto a plane yields
another ellipse.
1) If the input plane is invalid, an error is signaled by a
routine in the call tree of this routine.
2) The input ellipse may be degenerate--its semi-axes may be
linearly dependent. Such ellipses are allowed as inputs.
3) The ellipse resulting from orthogonally projecting the input
ellipse onto a plane may be degenerate, even if the input
ellipse is not.
4) If any of the input arguments, `elin' or `plane', is
undefined, an error is signaled by the IDL error handling
system.
5) If any of the input arguments, `elin' or `plane', is not of
the expected type, or it does not have the expected dimensions
and size, an error is signaled by the Icy interface.
6) If the output argument `elout' is not a named variable, an
error is signaled by the Icy interface.
None.
None.
ICY.REQ
ELLIPSES.REQ
PLANES.REQ
None.
J. Diaz del Rio (ODC Space)
E.D. Wright (JPL)
-Icy Version 1.0.2, 27-AUG-2021 (JDR)
Edited the header to comply with NAIF standard. Added example's
problem statement.
Added -Parameters, -Exceptions, -Files, -Restrictions,
-Literature_References and -Author_and_Institution sections.
Removed reference to the routine's corresponding CSPICE header from
-Abstract section.
Added arguments' type and size information in the -I/O section.
-Icy Version 1.0.1, 13-JUN-2011 (EDW)
Edits to comply with NAIF standard for Icy headers. -Particulars
section now parallels Mice version.
-Icy Version 1.0.0, 16-JUN-2003 (EDW)
project ellipse onto plane
|