twovec_c |
Table of contents
Proceduretwovec_c ( Two vectors defining an orthonormal frame ) void twovec_c ( ConstSpiceDouble axdef [3], SpiceInt indexa, ConstSpiceDouble plndef [3], SpiceInt indexp, SpiceDouble mout [3][3] ) AbstractFind the transformation to the right-handed frame having a given vector as a specified axis and having a second given vector lying in a specified coordinate plane. Required_ReadingNone. KeywordsAXES FRAME ROTATION TRANSFORMATION Brief_I/OVARIABLE I/O DESCRIPTION -------- --- -------------------------------------------------- axdef I Vector defining a principal axis. indexa I Principal axis number of `axdef' (x=1, y=2, z=3). plndef I Vector defining (with `axdef') a principal plane. indexp I Second axis number (with `indexa') of principal plane. mout O Output rotation matrix. Detailed_Inputaxdef is a vector defining one of the principal axes of a coordinate frame. indexa is a number that determines which of the three coordinate axes contains `axdef'. If `indexa' is 1 then `axdef' defines the X axis of the coordinate frame. If `indexa' is 2 then `axdef' defines the Y axis of the coordinate frame. If `indexa' is 3 then `axdef' defines the Z axis of the coordinate frame. plndef is a vector defining (with `axdef') a principal plane of the coordinate frame. `axdef' and `plndef' must be linearly independent. indexp is the second axis of the principal frame determined by `axdef' and `plndef'. `indexa', `indexp' must be different and be integers from 1 to 3. If `indexp' is 1, the second axis of the principal plane is the X-axis. If `indexp' is 2, the second axis of the principal plane is the Y-axis. If `indexp' is 3, the second axis of the principal plane is the Z-axis. Detailed_Outputmout is a rotation matrix that transforms coordinates given in the input frame to the frame determined by `axdef', `plndef', `indexa' and `indexp'. ParametersNone. Exceptions1) If `indexa' or `indexp' is not in the set {1,2,3}, the error SPICE(BADINDEX) is signaled by a routine in the call tree of this routine. 2) If `indexa' and `indexp' are the same, the error SPICE(UNDEFINEDFRAME) is signaled by a routine in the call tree of this routine. 3) If the cross product of the vectors `axdef' and `plndef' is zero, the error SPICE(DEPENDENTVECTORS) is signaled by a routine in the call tree of this routine. FilesNone. ParticularsGiven two linearly independent vectors there is a unique right-handed coordinate frame having: `axdef' lying along the `indexa' axis. `plndef' lying in the indexa-indexp coordinate plane. This routine determines the transformation matrix that transforms from coordinates used to represent the input vectors to the the system determined by `axdef' and `plndef'. Thus a vector (x,y,z) in the input coordinate system will have coordinates t mout* (x,y,z) in the frame determined by `axdef' and `plndef'. ExamplesThe rotation matrix ticc from inertial to Sun-Canopus (celestial) coordinates is found by the call twovec_c ( Sun_vector, 3, Canopus_vector, 1, ticc ); RestrictionsNone. Literature_ReferencesNone. Author_and_InstitutionN.J. Bachman (JPL) J. Diaz del Rio (ODC Space) W.M. Owen (JPL) W.L. Taber (JPL) Version-CSPICE Version 1.0.1, 13-AUG-2021 (JDR) Edited the header to comply with NAIF standard. -CSPICE Version 1.0.0, 22-OCT-1998 (NJB) Made input matrices const. -CSPICE Version 1.0.0, 02-MAR-1998 (WLT) (WMO) Index_Entriesdefine an orthonormal frame from two vectors |
Fri Dec 31 18:41:14 2021