Euler Angles#

Any rotation can be represented by three consecutive rotations about three basis vectors. Here we use the extrinsic xyz convention.

plot euler angles
/home/afabisch/Data/Projects/pytransform3d/pytransform3d/examples/plots/plot_euler_angles.py:25: DeprecationWarning: function is deprecated, use matrix_from_euler
  ax, pr.active_matrix_from_extrinsic_euler_xyz([alpha, 0, 0]), -0.5 * p
/home/afabisch/Data/Projects/pytransform3d/pytransform3d/examples/plots/plot_euler_angles.py:30: DeprecationWarning: function is deprecated, use matrix_from_euler
  ax, pr.active_matrix_from_extrinsic_euler_xyz([alpha, beta, 0]), 0.5 * p
/home/afabisch/Data/Projects/pytransform3d/pytransform3d/examples/plots/plot_euler_angles.py:36: DeprecationWarning: function is deprecated, use matrix_from_euler
  pr.active_matrix_from_extrinsic_euler_xyz([alpha, beta, gamma]),

import matplotlib.pyplot as plt
import numpy as np

from pytransform3d import rotations as pr
from pytransform3d.plot_utils import remove_frame

alpha, beta, gamma = 0.5 * np.pi, 0.5 * np.pi, 0.5 * np.pi
p = np.array([1, 1, 1])

plt.figure(figsize=(5, 5))

ax = pr.plot_basis(R=np.eye(3), p=-1.5 * p, ax_s=2)
pr.plot_axis_angle(ax, [1, 0, 0, alpha], -1.5 * p)

pr.plot_basis(
    ax, pr.active_matrix_from_extrinsic_euler_xyz([alpha, 0, 0]), -0.5 * p
)
pr.plot_axis_angle(ax, [0, 1, 0, beta], p=-0.5 * p)

pr.plot_basis(
    ax, pr.active_matrix_from_extrinsic_euler_xyz([alpha, beta, 0]), 0.5 * p
)
pr.plot_axis_angle(ax, [0, 0, 1, gamma], 0.5 * p)

pr.plot_basis(
    ax,
    pr.active_matrix_from_extrinsic_euler_xyz([alpha, beta, gamma]),
    1.5 * p,
    lw=5,
)

remove_frame(ax)

plt.show()

Total running time of the script: (0 minutes 0.045 seconds)

Gallery generated by Sphinx-Gallery