uy1 = uy0+uh user_rect = (ux0,uy0,uw,uh) #transform = 'rot 10' transform = 'rot -45' #transform = 'orig' pts = [ (0,0), (5,5), (30,30), (45,45), (1,3), (6,2), ] # test the with statement using as with canv.set_user_coords(device_rect, user_rect, transform=transform) as canv2: for pt in pts: canv2.scatter( [pt[0]], [pt[1]] ) # draw red boundary in user coords canv2.plot( [ux0,ux0,ux1,ux1,ux0],[uy0,uy1,uy1,uy0,uy0], color_rgba=(1,0,0,1)) # test the with statement (not using as) with canv.set_user_coords(device_rect, user_rect, transform=transform): for pt in pts: canv.scatter( [pt[0]], [pt[1]], radius=0.5, color_rgba=(0.2,0.2,0.6,0.5) ) if 1:
import tempfile import random import matplotlib.pyplot as plt from benu.benu import Canvas OUTER = 500 #--------- cm = plt.get_cmap('jet') outer = OUTER tmp_fname = tempfile.mktemp('.png') canv = Canvas(tmp_fname, OUTER, OUTER) while outer > 10: device_rect = (0,0,outer,outer) user_rect = (0,0,outer,outer) with canv.set_user_coords(device_rect, user_rect): canv.poly([0,0,outer,outer,0], [0,outer,outer,0,0], color_rgba=cm(random.randrange(0,cm.N)) ) outer = outer // 2 canv.save() print tmp_fname