#!/usr/bin/env python2.2

from __future__ import division
import random

class treeClass:
  def __init__( self, x,y, height ):
    self.x = x
    self.y = y
    self.height = height
    self.rot = 360 * random.random()
    self.breite_unten   = 1 + 10 * random.random()
    self.anzahl_aeste   = random.randint(3, 10) # inclusive
    self.delta_asthoehe = (self.height - (self.height // 2)) / self.anzahl_aeste

  def getAstBreite( self, ast_nummer ):
    return (self.anzahl_aeste - ast_nummer ) * (self.breite_unten / self.anzahl_aeste)
  
  def render( self ):
    stamm_hoehe = 5 + (10 * random.random())
    if stamm_hoehe > self.height:
      stamm_hoehe = self.height // 2
    print """
    pyramid
      position %.02f %.02f 0
      size 1 1 %.02f
      rotation %.02f
    end""" % (self.x, self.y, self.height, self.rot)

    for i in range( self.anzahl_aeste ):
      ast_breite = self.getAstBreite( i )
      print """
      pyramid
        position %.02f %.02f %.02f
        size %.02f %.02f %.02f
        rotation %.02f
      end""" % (self.x, self.y, stamm_hoehe+(i*self.delta_asthoehe), ast_breite, ast_breite, self.delta_asthoehe,  360 * random.random() )

for i in range(40):
  x = 800 * random.random() - 400
  y = 800 * random.random() - 400
  height = 80 * random.random()
  tree = treeClass( x, y, height )
  tree.render()
  
  
