Advertisement
lewapkon

fractalTree.py

Feb 18th, 2014
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.72 KB | None | 0 0
  1. #!/usr/bin/python2
  2. # coding: utf-8
  3.  
  4. import cairo
  5.  
  6. class Saved():
  7.     def __init__(self, cr):
  8.         self.cr = cr
  9.     def __enter__(self):
  10.         self.cr.save()
  11.         return self.cr
  12.     def __exit__(self, type, value, traceback):
  13.         self.cr.restore()
  14.  
  15. def Tree(angle):
  16.     cr.move_to(0, 0)
  17.     cr.translate(0, -260)
  18.     cr.line_to(0, 0)
  19.     cr.stroke()
  20.     cr.scale(0.72, 0.72)
  21.     if angle > 0.12:
  22.         for a in [-angle, angle]:
  23.             with Saved(cr):
  24.                 cr.rotate(a)
  25.                 Tree(angle * 0.85)
  26.  
  27. surf = cairo.ImageSurface(cairo.FORMAT_ARGB32, 1200, 900)
  28. cr = cairo.Context(surf)
  29. cr.translate(600, 899)
  30. cr.set_line_width(5)
  31. Tree(0.75)
  32. surf.write_to_png('fractal-tree.png')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement