本文整理汇总了Python中pyrr.objects.quaternion.Quaternion.from_axis_rotation方法的典型用法代码示例。如果您正苦于以下问题:Python Quaternion.from_axis_rotation方法的具体用法?Python Quaternion.from_axis_rotation怎么用?Python Quaternion.from_axis_rotation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyrr.objects.quaternion.Quaternion
的用法示例。
在下文中一共展示了Quaternion.from_axis_rotation方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_decompose
# 需要导入模块: from pyrr.objects.quaternion import Quaternion [as 别名]
# 或者: from pyrr.objects.quaternion.Quaternion import from_axis_rotation [as 别名]
def test_decompose(self):
# define expectations for multiple cases
testsets = [
(
Vector3([1, 1, 2], dtype='f4'),
Quaternion.from_y_rotation(np.pi, dtype='f4'),
Vector3([10, 0, -5], dtype='f4'),
Matrix44([
[-1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, -2, 0],
[10, 0, -5, 1],
], dtype='f4')
),
(
Vector3([-1, 3, .5], dtype='f4'),
Quaternion.from_axis_rotation(Vector3([.75, .75, 0], dtype='f4').normalized, np.pi, dtype='f4').normalized,
Vector3([1, -1, 1], dtype='f4'),
Matrix44([
[0, -1, 0, 0],
[3, 0, 0, 0],
[0, 0, -.5, 0],
[1, -1, 1, 1],
], dtype='f4')
),
]
for expected_scale, expected_rotation, expected_translation, expected_model in testsets:
# compose model matrix using original inputs
s = Matrix44.from_scale(expected_scale, dtype='f4')
r = Matrix44.from_quaternion(expected_rotation, dtype='f4')
t = Matrix44.from_translation(expected_translation, dtype='f4')
m = t * r * s
# check that it's the same as the expected matrix
np.testing.assert_almost_equal(np.array(m), np.array(expected_model))
self.assertTrue(m.dtype == expected_model.dtype)
self.assertTrue(isinstance(m, expected_model.__class__))
# decompose this matrix and recompose the model matrix from the decomposition
ds, dr, dt = m.decompose()
ds = Matrix44.from_scale(ds, dtype='f4')
dr = Matrix44.from_quaternion(dr, dtype='f4')
dt = Matrix44.from_translation(dt, dtype='f4')
dm = dt * dr * ds
# check that it's the same as the original matrix
np.testing.assert_almost_equal(np.array(m), np.array(dm))
self.assertTrue(m.dtype == dm.dtype)
self.assertTrue(isinstance(dm, m.__class__))
示例2: test_from_axis_rotation
# 需要导入模块: from pyrr.objects.quaternion import Quaternion [as 别名]
# 或者: from pyrr.objects.quaternion.Quaternion import from_axis_rotation [as 别名]
def test_from_axis_rotation(self):
q = Quaternion.from_axis_rotation([1.,0.,0.], np.pi / 2.)
self.assertTrue(np.allclose(q*Vector3([1.,0.,0.]), [1.,0.,0.]))
self.assertTrue(np.allclose(q*Vector3([0.,1.,0.]), [0.,0.,-1.]))
self.assertTrue(np.allclose(q*Vector3([0.,0.,1.]), [0.,1.,0.]))