```python
import sympy as sm
```


```python
sm.init_printing()
```


```python
theta, alpha = sm.symbols('theta, alpha')
```


```python
B_C_A = sm.Matrix([[sm.cos(theta), sm.sin(theta), 0],
                   [-sm.sin(theta), sm.cos(theta), 0],
                   [0, 0, 1]])
B_C_A
```


```python
C_C_B = sm.Matrix([[1, 0, 0],
                   [0, sm.cos(alpha), sm.sin(alpha)],
                   [0, -sm.sin(alpha), sm.cos(alpha)]])
C_C_B
```


```python
C_C_A = C_C_B * B_C_A
C_C_A
```

# SymPy Mechanics Orientation


```python
import sympy.physics.mechanics as me
```


```python
A = me.ReferenceFrame('A')
B = me.ReferenceFrame('B')
C = me.ReferenceFrame('C')
```


```python
B.orient_axis(A, theta, A.z)
```


```python
A.x
```


```python
A.y
```


```python
A.z
```


```python
B.dcm(A)
```


```python
C.orient_axis(B, alpha, B.x)
```


```python
C.dcm(B)
```


```python
C.dcm(A)
```

# Euler Z-X-Z


```python
A = me.ReferenceFrame('A')
C = me.ReferenceFrame('C')
```


```python
psi, theta, phi = sm.symbols('psi, theta, varphi')
```


```python
C.orient_body_fixed(A, (psi, theta, phi), 'ZXZ')
```


```python
C.dcm(A)
```


```python

```

1d1d776909bd34dfe6b00368729355672622bc1e
ipynb
Jupyter Notebook
content/notebooks/orientation.ipynb
moorepants/me41055
5c941d28f6f61fa1a02fbda4772d88010014eec0
CC-BY-4.0
content/notebooks/orientation.ipynb
moorepants/me41055
5c941d28f6f61fa1a02fbda4772d88010014eec0
CC-BY-4.0
2022-01-07T18:05:36.000Z
2022-03-22T15:15:01.000Z
content/notebooks/orientation.ipynb
moorepants/me41055
5c941d28f6f61fa1a02fbda4772d88010014eec0
CC-BY-4.0
2022-01-24T17:18:40.000Z
2022-01-24T17:18:40.000Z
Qwen/Qwen-72B
1. YES
2. YES