2010-04-11 14:22:27 +00:00
|
|
|
import mathutils
|
2011-10-17 02:20:53 +00:00
|
|
|
import math
|
2010-04-11 14:22:27 +00:00
|
|
|
|
2011-10-17 02:20:53 +00:00
|
|
|
# a new rotation 90 degrees about the Y axis
|
|
|
|
quat_a = mathutils.Quaternion((0.7071068, 0.0, 0.7071068, 0.0))
|
|
|
|
|
|
|
|
# passing values to Quaternion's directly can be confusing so axis, angle
|
|
|
|
# is supported for initializing too
|
|
|
|
quat_b = mathutils.Quaternion((0.0, 1.0, 0.0), math.radians(90.0))
|
|
|
|
|
|
|
|
print("Check quaternions match", quat_a == quat_b)
|
|
|
|
|
|
|
|
# like matrices, quaternions can be multiplied to accumulate rotational values
|
|
|
|
quat_a = mathutils.Quaternion((0.0, 1.0, 0.0), math.radians(90.0))
|
|
|
|
quat_b = mathutils.Quaternion((0.0, 0.0, 1.0), math.radians(45.0))
|
|
|
|
quat_out = quat_a * quat_b
|
|
|
|
|
|
|
|
# print the quat, euler degrees for mear mortals and (axis, angle)
|
|
|
|
print("Final Rotation:")
|
|
|
|
print(quat_out)
|
|
|
|
print("%.2f, %.2f, %.2f" % tuple(math.degrees(a) for a in quat_out.to_euler()))
|
|
|
|
print("(%.2f, %.2f, %.2f), %.2f" % (quat_out.axis[:] +
|
|
|
|
(math.degrees(quat_out.angle), )))
|