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)
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)
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))
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 ))
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 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)
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)
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)
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()