index 8728ed7a37e413dc17b10c9eb930fa534af85b67..5d8ac9f3d6372f55ac8ff8a43cb00ae042297432 100755 (executable)
import inkex, simplestyle, pturtle, random
def rtree(turtle, size, min):
import inkex, simplestyle, pturtle, random
def rtree(turtle, size, min):
- if size < min:
- return
- turtle.fd(size)
- turn = random.uniform(20, 40)
- turtle.lt(turn)
- rtree(turtle, size*random.uniform(0.5,0.9), min)
- turtle.rt(turn)
- turn = random.uniform(20, 40)
- turtle.rt(turn)
- rtree(turtle, size*random.uniform(0.5,0.9), min)
- turtle.lt(turn)
- turtle.bk(size)
+ if size < min:
+ return
+ turtle.fd(size)
+ turn = random.uniform(20, 40)
+ turtle.lt(turn)
+ rtree(turtle, size*random.uniform(0.5,0.9), min)
+ turtle.rt(turn)
+ turn = random.uniform(20, 40)
+ turtle.rt(turn)
+ rtree(turtle, size*random.uniform(0.5,0.9), min)
+ turtle.lt(turn)
+ turtle.bk(size)
class RTreeTurtle(inkex.Effect):
class RTreeTurtle(inkex.Effect):
- def __init__(self):
- inkex.Effect.__init__(self)
- self.OptionParser.add_option("-s", "--size",
- action="store", type="float",
- dest="size", default=100.0,
- help="initial branch size")
- self.OptionParser.add_option("-m", "--minimum",
- action="store", type="float",
- dest="minimum", default=4.0,
- help="minimum branch size")
- def effect(self):
- new = self.document.createElement('svg:path')
- s = {'stroke-linejoin': 'miter', 'stroke-width': '1.0px',
- 'stroke-opacity': '1.0', 'fill-opacity': '1.0',
- 'stroke': '#000000', 'stroke-linecap': 'butt',
- 'fill': 'none'}
- new.setAttribute('style', simplestyle.formatStyle(s))
- t = pturtle.pTurtle()
- rtree(t, self.options.size, self.options.minimum)
- new.setAttribute('d', t.getPath())
- self.document.documentElement.appendChild(new)
+ def __init__(self):
+ inkex.Effect.__init__(self)
+ self.OptionParser.add_option("-s", "--size",
+ action="store", type="float",
+ dest="size", default=100.0,
+ help="initial branch size")
+ self.OptionParser.add_option("-m", "--minimum",
+ action="store", type="float",
+ dest="minimum", default=4.0,
+ help="minimum branch size")
+ def effect(self):
+ new = self.document.createElement('svg:path')
+ s = {'stroke-linejoin': 'miter', 'stroke-width': '1.0px',
+ 'stroke-opacity': '1.0', 'fill-opacity': '1.0',
+ 'stroke': '#000000', 'stroke-linecap': 'butt',
+ 'fill': 'none'}
+ new.setAttribute('style', simplestyle.formatStyle(s))
+ t = pturtle.pTurtle()
+ t.pu()
+ t.setpos(self.view_center)
+ t.pd()
+ rtree(t, self.options.size, self.options.minimum)
+ new.setAttribute('d', t.getPath())
+ self.current_layer.appendChild(new)
e = RTreeTurtle()
e.affect()
e = RTreeTurtle()
e.affect()