Ejemplo n.º 1
0
 def test_m2rotaxis_0(self):
     """Test 0 deg rotation. Axis must be [1, 0, 0] as per Vector documentation."""
     v1 = Vector([1.0, 0.8, 0])
     v2 = Vector([1.0, 0.8, 0])
     rot = rotmat(v1, v2)
     angle, axis = m2rotaxis(rot)
     self.assertTrue(numpy.allclose(axis.get_array(), [1, 0, 0]))
     self.assertTrue(abs(angle) < 1e-5)
Ejemplo n.º 2
0
 def test_m2rotaxis_90(self):
     """Test 90 deg rotation."""
     v1 = Vector(0, 0, 1)
     v2 = Vector(0, 1, 0)
     rot = rotmat(v1, v2)
     angle, axis = m2rotaxis(rot)
     self.assertTrue(numpy.allclose(axis.get_array(), [-1.0, 0.0, 0.0]))
     self.assertTrue(abs(angle - numpy.pi / 2) < 1e-5)
Ejemplo n.º 3
0
 def test_m2rotaxis_180(self):
     """Test 180 deg rotation."""
     v1 = Vector([1.0, 0.8, 0])
     v2 = Vector([-1.0, -0.8, 0])
     rot = rotmat(v1, v2)
     angle, axis = m2rotaxis(rot)
     self.assertTrue(abs(axis * v1) < 1e-5)  # axis orthogonal to v1
     self.assertTrue(abs(angle - numpy.pi) < 1e-5)
Ejemplo n.º 4
0
 def test_Vector_angles(self):
     """Test Vector angles."""
     angle = random() * numpy.pi
     axis = Vector(random(3) - random(3))
     axis.normalize()
     m = rotaxis(angle, axis)
     cangle, caxis = m2rotaxis(m)
     self.assertAlmostEqual(angle, cangle, places=3)
     self.assertTrue(
         numpy.allclose(list(map(int, (axis - caxis).get_array())),
                        [0, 0, 0]), "Want %r and %r to be almost equal" %
         (axis.get_array(), caxis.get_array()))