Skip to content

Parameterizer

Numerical Parameterizer

axis_angle()

Creates an axis-angle parameterizer.

This parameterizer can be used to create axis-angle rotations. Since the parameterization is generally not unique, the parameterizer will return a set of solutions. The angle will be in the range of [-π, π] radians or [-180, 180] degrees and the axis will be normalized.

Returns:

Type Description
AxisAngleParameterizer[Number]

An axis-angle parameterizer.

Example
from core import rotation, Axis
axis_angle = rotation.parameterizer.axis_angle()
axis_angle.parameterize(rotation.elementary(Axis.X, degrees=120)).radians().render()
# {(k = [1.0, 0.0, 0.0]ᵀ, θ = 2.0944), (k = [-1.0, -0.0, -0.0]ᵀ, θ = -2.0944)}

The angle can also be converted to degrees:

from core import rotation, Axis
axis_angle = rotation.parameterizer.axis_angle()
axis_angle.parameterize(rotation.elementary(Axis.X, degrees=120)).degrees().render()
# {(k = [1.0, 0.0, 0.0]ᵀ, θ = 120.0), (k = [-1.0, -0.0, -0.0]ᵀ, θ = -120.0)}

cardan()

Creates a Cardan parameterizer.

This parameterizer can be used to create Cardan angles from rotations. Since the angles are generally not unique, the parameterizer will return a set of solutions. All angles will be in the range of [-π, π] radians or [-180, 180] degrees.

Returns:

Type Description
CardanParameterizer[Number]

A Cardan parameterizer.

Example
from core import rotation, Axis
cardan = rotation.parameterizer.cardan()
cardan.parameterize(rotation.elementary(Axis.X, degrees=120)).radians().render()
# {(ψ = -1.0472, θ = -3.1416, φ = 3.1416), (ψ = 2.0944, θ = 0.0, φ = 0.0)}

The angles can also be converted to degrees:

from core import rotation, Axis
cardan = rotation.parameterizer.cardan()
cardan.parameterize(rotation.elementary(Axis.X, degrees=120)).degrees().render()
# {(ψ = -60.0, θ = -180.0, φ = 180.0), (ψ = 120.0, θ = 0.0, φ = 0.0)}

euler()

Creates a Euler parameterizer.

This parameterizer can be used to create Euler angles from rotations. Since the angles are generally not unique, the parameterizer will return a set of solutions. All angles will be in the range of [-π, π] radians or [-180, 180] degrees.

Returns:

Type Description
EulerParameterizer[Number]

A Euler parameterizer.

Example
from core import rotation, Axis
euler = rotation.parameterizer.euler()
euler.parameterize(rotation.elementary(Axis.X, degrees=120)).radians().render()
# {(φ = 1.5707, θ = -2.0943, ψ = -1.5707), (φ = -1.5707, θ = 2.0943, ψ = 1.5707)}

The angles can also be converted to degrees:

from core import rotation, Axis
euler = rotation.parameterizer.euler()
euler.parameterize(rotation.elementary(Axis.X, degrees=120)).degrees().render()
# {(φ = 90.0, θ = -120.0, ψ = -90.0), (φ = -90.0, θ = 120.0, ψ = 90.0)}

quaternion()

Creates a quaternion parameterizer.

This parameterizer can be used to create quaternions from rotations. Since the quaternions are generally not unique, the parameterizer will return a set of solutions. The quaternion will be normalized.

Returns:

Type Description
QuaternionParameterizer[Number]

A quaternion parameterizer.

Example
from core import rotation, Axis
quaternion = rotation.parameterizer.quaternion()
quaternion.parameterize(rotation.elementary(Axis.X, degrees=120)).render()
# {(q₀ = -0.5, q = [-0.866, -0.0, -0.0]), (q₀ = 0.5, q = [0.866, 0.0, 0.0])}