fractal_tree.sf 553 B

1234567891011121314151617181920212223242526272829
  1. #!/usr/bin/ruby
  2. func tree(img, x, y, scale=6/10, len=400, angle=270) {
  3. len < 1 && return();
  4. img.moveTo(x, y);
  5. img.angle(angle);
  6. img.line(len);
  7. var (x1, y1) = img.curPos;
  8. tree(img, x1, y1, scale, len*scale, angle+35);
  9. tree(img, x1, y1, scale, len*scale, angle-35);
  10. }
  11. require('GD::Simple');
  12. var (width=1000, height=1000);
  13. var img = %s'GD::Simple'.new(width, height);
  14. img.fgcolor('black');
  15. img.penSize(1, 1);
  16. tree(img, width/2, height);
  17. var file = %f'tree.png';
  18. var fh = file.open('>:raw');
  19. fh.print(img.png);
  20. fh.close;