quaternion_from_axis_angle

compas.geometry.quaternion_from_axis_angle(axis, angle)[source]

Returns a quaternion describing a rotation around the given axis by the given angle.

Parameters:
axis[float, float, float] | compas.geometry.Vector

XYZ coordinates of the rotation axis vector.

anglefloat

Angle of rotation in radians.

Returns:
[float, float, float, float]

Quaternion as a list of four real values [qw, qx, qy, qz].

Examples

>>> axis = [1.0, 0.0, 0.0]
>>> angle = math.pi / 2
>>> q = quaternion_from_axis_angle(axis, angle)
>>> allclose(q, [math.sqrt(2) / 2, math.sqrt(2) / 2, 0, 0])
True