Ejemplo n.º 1
0
    def test_interpolated_rotations(self):
        x = Rotation.from_axis_angle([1, 0, 0], 0)
        a = math.pi / 2
        y = Rotation.from_axis_angle([0, 1, 0], a)
        i_list = Rotation.interpolated_rotations(x, y, 3)
        nose.tools.assert_equal([i._ctype for i in i_list], ['d'] * 3)

        i0_e_axis, i0_e_angle = [0, 1, 0], a * 0.25
        i1_e_axis, i1_e_angle = [0, 1, 0], a * 0.50
        i2_e_axis, i2_e_angle = [0, 1, 0], a * 0.75

        numpy.testing.assert_almost_equal(i_list[0].axis(), i0_e_axis, 14)
        numpy.testing.assert_almost_equal(i_list[0].angle(), i0_e_angle, 14)

        numpy.testing.assert_almost_equal(i_list[1].axis(), i1_e_axis, 14)
        numpy.testing.assert_almost_equal(i_list[1].angle(), i1_e_angle, 14)

        numpy.testing.assert_almost_equal(i_list[2].axis(), i2_e_axis, 14)
        numpy.testing.assert_almost_equal(i_list[2].angle(), i2_e_angle, 14)

        # Mixed types
        a = math.pi / 2
        x = Rotation.from_axis_angle([1, 0, 0], 0, 'f')
        y = Rotation.from_axis_angle([0, 1, 0], a)
        i_list = Rotation.interpolated_rotations(x, y, 3)
        nose.tools.assert_equal([i._ctype for i in i_list], ['f'] * 3)

        numpy.testing.assert_almost_equal(i_list[0].axis(), i0_e_axis, 14)
        numpy.testing.assert_almost_equal(i_list[0].angle(), i0_e_angle, 6)

        numpy.testing.assert_almost_equal(i_list[1].axis(), i1_e_axis, 14)
        numpy.testing.assert_almost_equal(i_list[1].angle(), i1_e_angle, 6)

        numpy.testing.assert_almost_equal(i_list[2].axis(), i2_e_axis, 14)
        numpy.testing.assert_almost_equal(i_list[2].angle(), i2_e_angle, 6)
Ejemplo n.º 2
0
    def test_interpolated_rotations(self):
        x = Rotation.from_axis_angle([1, 0, 0], 0)
        a = math.pi / 2
        y = Rotation.from_axis_angle([0, 1, 0], a)
        i_list = Rotation.interpolated_rotations(x, y, 3)
        nose.tools.assert_equal([i._ctype for i in i_list],
                                ['d'] * 3)

        i0_e_axis, i0_e_angle = [0, 1, 0], a * 0.25
        i1_e_axis, i1_e_angle = [0, 1, 0], a * 0.50
        i2_e_axis, i2_e_angle = [0, 1, 0], a * 0.75

        numpy.testing.assert_almost_equal(i_list[0].axis(), i0_e_axis, 14)
        numpy.testing.assert_almost_equal(i_list[0].angle(), i0_e_angle, 14)

        numpy.testing.assert_almost_equal(i_list[1].axis(), i1_e_axis, 14)
        numpy.testing.assert_almost_equal(i_list[1].angle(), i1_e_angle, 14)

        numpy.testing.assert_almost_equal(i_list[2].axis(), i2_e_axis, 14)
        numpy.testing.assert_almost_equal(i_list[2].angle(), i2_e_angle, 14)

        # Mixed types
        a = math.pi / 2
        x = Rotation.from_axis_angle([1, 0, 0], 0, 'f')
        y = Rotation.from_axis_angle([0, 1, 0], a)
        i_list = Rotation.interpolated_rotations(x, y, 3)
        nose.tools.assert_equal([i._ctype for i in i_list],
                                ['f'] * 3)

        numpy.testing.assert_almost_equal(i_list[0].axis(), i0_e_axis, 14)
        numpy.testing.assert_almost_equal(i_list[0].angle(), i0_e_angle, 6)

        numpy.testing.assert_almost_equal(i_list[1].axis(), i1_e_axis, 14)
        numpy.testing.assert_almost_equal(i_list[1].angle(), i1_e_angle, 6)

        numpy.testing.assert_almost_equal(i_list[2].axis(), i2_e_axis, 14)
        numpy.testing.assert_almost_equal(i_list[2].angle(), i2_e_angle, 6)