Beispiel #1
0
 def test_rotate_ctm(self):
     gc = basecore2d.GraphicsContextBase()
     ident = affine.affine_identity()
     angle = 2.0
     desired = affine.rotate(ident, angle)
     gc.rotate_ctm(angle)
     actual = gc.get_ctm()
     self.assertTrue(alltrue(ravel(actual == desired)))
 def test_rotate_ctm(self):
     gc = basecore2d.GraphicsContextBase()
     ident = affine.affine_identity()
     angle = 2.
     desired = affine.rotate(ident, angle)
     gc.rotate_ctm(angle)
     actual = gc.get_ctm()
     self.assert_(alltrue(ravel(actual == desired)))
 def test_tsr_factor(self):
     trans = affine.affine_identity()
     trans = affine.translate(trans, 6, 5)
     trans = affine.scale(trans, 0.2, 10)
     trans = affine.rotate(trans, 2.4)
     tx, ty, sx, sy, angle = affine.tsr_factor(trans)
     assert ((tx, ty) == (6, 5))
     assert ((sx, sy) == (0.2, 10))
     assert (angle == 2.4)
Beispiel #4
0
 def test_trs_factor(self):
     trans = affine.affine_identity()
     trans = affine.translate(trans,5,5)
     trans = affine.rotate(trans,2.4)
     trans = affine.scale(trans,10,10)
     tx,ty,sx,sy,angle = affine.trs_factor(trans)
     assert( (tx,ty) == (5,5))
     assert( (sx,sy) == (10,10))
     assert( angle == 2.4)
Beispiel #5
0
 def test_tsr_factor(self):
     trans = affine.affine_identity()
     trans = affine.translate(trans,6,5)
     trans = affine.scale(trans,0.2,10)
     trans = affine.rotate(trans,2.4)
     tx,ty,sx,sy,angle = affine.tsr_factor(trans)
     assert( (tx,ty) == (6,5))
     assert( (sx,sy) == (0.2,10))
     assert( angle == 2.4)
 def test_rotate(self):
     a, b, c, d, tx, ty = 1., 0, 0, 1., 0, 0
     transform1 = affine.affine_from_values(a, b, c, d, tx, ty)
     tot_transform = affine.rotate(transform1, pi / 4)
     pt1 = array([1., 0., 1.])
     actual = dot(pt1, tot_transform)
     # this does the first transform and the translate separately
     cos_pi_4 = 0.70710678118654757
     desired = array((cos_pi_4, cos_pi_4, 1.))
     assert (alltrue((actual - desired) < 1e-6))
Beispiel #7
0
 def test_rotate(self):
     a,b,c,d,tx,ty = 1.,0,0,1.,0,0
     transform1 = affine.affine_from_values(a,b,c,d,tx,ty)
     tot_transform = affine.rotate(transform1,pi/4)
     pt1 = array([1.,0.,1.])
     actual = dot(pt1,tot_transform)
     # this does the first transform and the translate separately
     cos_pi_4 = 0.70710678118654757
     desired = array((cos_pi_4,cos_pi_4,1.))
     assert(alltrue( (actual - desired) < 1e-6 ))
Beispiel #8
0
    def rotate_ctm(self, angle):
        """ Rotates the coordinate space for drawing by the given angle.

            Parameters
            ----------
            angle : float
                the angle, in radians, to rotate the coordinate system
        """
        self.state.ctm = affine.rotate(self.state.ctm, angle)
        self.active_subpath.append((ROTATE_CTM, (angle,)))
        self.path_transform_indices.append(len(self.active_subpath)-1)
Beispiel #9
0
    def rotate_ctm(self, angle):
        """ Rotates the coordinate space for drawing by the given angle.

            Parameters
            ----------
            angle : float
                the angle, in radians, to rotate the coordinate system
        """
        self.state.ctm = affine.rotate(self.state.ctm, angle)
        self.active_subpath.append((ROTATE_CTM, (angle,)))
        self.path_transform_indices.append(len(self.active_subpath) - 1)
    def test_transform_point(self):
        pt = array((1, 1))
        ctm = affine.affine_identity()
        ctm = affine.translate(ctm, 5, 5)
        new_pt = affine.transform_point(ctm, pt)
        assert (alltrue(new_pt == array((6, 6))))

        ctm = affine.rotate(ctm, pi)
        new_pt = affine.transform_point(ctm, pt)
        assert (sum(new_pt - array((4., 4.))) < 1e-15)

        ctm = affine.scale(ctm, 10, 10)
        new_pt = affine.transform_point(ctm, pt)
        assert (sum(new_pt - array((-5., -5.))) < 1e-15)
Beispiel #11
0
    def test_transform_point(self):
        pt = array((1,1))
        ctm = affine.affine_identity()
        ctm = affine.translate(ctm,5,5)
        new_pt = affine.transform_point(ctm, pt)
        assert(alltrue(new_pt == array((6,6))))

        ctm = affine.rotate(ctm,pi)
        new_pt = affine.transform_point(ctm, pt)
        assert(sum(new_pt - array((4.,4.))) < 1e-15)

        ctm = affine.scale(ctm,10,10)
        new_pt = affine.transform_point(ctm, pt)
        assert(sum(new_pt - array((-5.,-5.))) < 1e-15)
    def test_transform_points(self):
        # not that thorough...
        pt = array(((1, 1), ))
        ctm = affine.affine_identity()
        ctm = affine.translate(ctm, 5, 5)
        new_pt = affine.transform_points(ctm, pt)
        assert (alltrue(new_pt[0] == array((6, 6))))

        ctm = affine.rotate(ctm, pi)
        new_pt = affine.transform_points(ctm, pt)
        assert (sum(new_pt[0] - array((4., 4.))) < 1e-15)

        ctm = affine.scale(ctm, 10, 10)
        new_pt = affine.transform_points(ctm, pt)
        assert (sum(new_pt[0] - array((-5., -5.))) < 1e-15)
Beispiel #13
0
    def test_transform_points(self):
        # not that thorough...
        pt = array(((1,1),))
        ctm = affine.affine_identity()
        ctm = affine.translate(ctm,5,5)
        new_pt = affine.transform_points(ctm, pt)
        assert(alltrue(new_pt[0] == array((6,6))))

        ctm = affine.rotate(ctm,pi)
        new_pt = affine.transform_points(ctm, pt)
        assert(sum(new_pt[0] - array((4.,4.))) < 1e-15)

        ctm = affine.scale(ctm,10,10)
        new_pt = affine.transform_points(ctm, pt)
        assert(sum(new_pt[0] - array((-5.,-5.))) < 1e-15)
Beispiel #14
0
    def device_transform_device_ctm(self, func, args):
        """ Default implementation for handling scaling matrices.

            Many implementations will just use this function.  Others, like
            OpenGL, can benefit from overriding the method and using
            hardware acceleration.
        """
        if func == SCALE_CTM:
            self.device_ctm = affine.scale(self.device_ctm, args[0], args[1])
        elif func == ROTATE_CTM:
            self.device_ctm = affine.rotate(self.device_ctm, args[0])
        elif func == TRANSLATE_CTM:
            self.device_ctm = affine.translate(self.device_ctm, args[0],
                                               args[1])
        elif func == CONCAT_CTM:
            self.device_ctm = affine.concat(self.device_ctm, args[0])
        elif func == LOAD_CTM:
            self.device_ctm = args[0].copy()
Beispiel #15
0
    def device_transform_device_ctm(self, func, args):
        """ Default implementation for handling scaling matrices.

            Many implementations will just use this function.  Others, like
            OpenGL, can benefit from overriding the method and using
            hardware acceleration.
        """
        if func == SCALE_CTM:
            self.device_ctm = affine.scale(self.device_ctm, args[0], args[1])
        elif func == ROTATE_CTM:
            self.device_ctm = affine.rotate(self.device_ctm, args[0])
        elif func == TRANSLATE_CTM:
            self.device_ctm = affine.translate(self.device_ctm, args[0],
                                               args[1])
        elif func == CONCAT_CTM:
            self.device_ctm = affine.concat(self.device_ctm, args[0])
        elif func == LOAD_CTM:
            self.device_ctm = args[0].copy()