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
rotate_c

 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.
```

```   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
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
```
`Fri Dec 31 18:41:11 2021`