コード例 #1
0
 def test_update_without_rotation(self):
     q = Quaternion()
     q.update(toVector(0.0, 0.0, 0.0), 0.01)
     q0, q1, q2, q3 = toValue(q.values)
     self.assertEqual(q0, 1.)
     self.assertEqual(q1, 0.)
     self.assertEqual(q2, 0.)
     self.assertEqual(q3, 0.)
コード例 #2
0
 def test_update(self):
     q = Quaternion()
     rotationRate = toVector(-100., 50., 120.)
     q.update(rotationRate, 0.01)
     q0, q1, q2, q3 = toValue(q.values)
     self.assertAlmostEqual(q0, 0.68217, delta=0.0001)
     self.assertAlmostEqual(q1, -0.44581, delta=0.0001)
     self.assertAlmostEqual(q2, 0.22291, delta=0.0001)
     self.assertAlmostEqual(q3, 0.53498, delta=0.0001)
コード例 #3
0
 def test_update_180(self):
     q = Quaternion()
     rotationRate = toVector(0., deg2rad(5.), 0.)  #rad/s
     for _ in range(3600):
         q.update(rotationRate, 0.01)
     q0, q1, q2, q3 = toValue(q.values)
     self.assertAlmostEqual(q0, 0.0, delta=0.0001)
     self.assertAlmostEqual(q1, 0.0, delta=0.0001)
     self.assertAlmostEqual(q2, 1., delta=0.0001)
     self.assertAlmostEqual(q3, 0.0, delta=0.0001)