Index of Functions: A B C D E F G H I J K L M N O P Q R S T U V W X
Index Page rotate_c
Table of contents
Procedure Abstract Required_Reading Keywords Brief_I/O Detailed_Input | Detailed_Output Parameters Exceptions Files Particulars Examples | Restrictions Literature_References Author_and_Institution Version Index_Entries
#### Procedure
       rotate_c ( Generate a rotation matrix )

       void rotate_c ( SpiceDouble     angle,
                       SpiceInt        iaxis,
                       SpiceDouble     mout[3][3] )
#### Abstract
       Calculate the 3x3 rotation matrix generated by a rotation
       of a specified angle about a specified axis. This rotation
       is thought of as rotating the coordinate system.
#### Required_Reading
       None.
#### Keywords
       MATRIX
       ROTATION
#### Brief_I/O
       VARIABLE  I/O  DESCRIPTION
       --------  ---  --------------------------------------------------
       angle      I   Angle of rotation (radians).
       iaxis      I   Axis of rotation (X=1, Y=2, Z=3).
       mout       O   Resulting rotation matrix [angle]
                                                       iaxis
#### Detailed_Input
       angle       is the angle given in radians, through which the rotation
                   is performed.

       iaxis       is the index of the axis of rotation. The X, Y, and Z
                   axes have indices 1, 2 and 3 respectively.
#### Detailed_Output
       mout        is the rotation matrix which describes the rotation of the
                   COORDINATE system through angle radians about the
                   axis whose index is iaxis.
#### Parameters
       None.
#### Exceptions
       Error free.

       1)  If the axis index is not in the range 1 to 3, it will be
           treated the same as that integer 1, 2, or 3 that is congruent
           to it mod 3.
#### Files
       None.
#### Particulars
       A rotation about the first, i.e. x-axis, is described by

          |  1        0          0      |
          |  0   cos(theta) sin(theta)  |
          |  0  -sin(theta) cos(theta)  |

       A rotation about the second, i.e. y-axis, is described by

          |  cos(theta)  0  -sin(theta)  |
          |      0       1        0      |
          |  sin(theta)  0   cos(theta)  |

       A rotation about the third, i.e. z-axis, is described by

          |  cos(theta) sin(theta)   0   |
          | -sin(theta) cos(theta)   0   |
          |       0          0       1   |

       rotate_c decides which form is appropriate according to the value
       of IAXIS.
#### Examples
       If rotate_c is called from a C program as follows:

             rotate_c ( pi_c()/4, 3, mout );

       then mout will be given by

                    | sqrt(2)/2   sqrt(2)/2   0  |
             mout = |-sqrt(2)/2   sqrt(2)/2   0  |
                    |     0           0       1  |
#### Restrictions
       None.
#### Literature_References
       None.
#### Author_and_Institution
       N.J. Bachman        (JPL)
       J. Diaz del Rio     (ODC Space)
#### Version
       -CSPICE Version 1.0.1, 04-AUG-2021 (JDR)

           Edited the header to comply with NAIF standard.

       -CSPICE Version 1.0.0, 08-FEB-1998 (NJB)

           Based on SPICELIB Version 1.0.1, 10-MAR-1992 (WLT)
#### Index_Entries
       generate a rotation matrix
#### Link to routine rotate_c source file rotate_c.c

    Fri Dec 31 18:41:11 2021