kigdocument.noaxes()
kigdocument.nogrid()

#
# fiocco di neve, la funzione ricorsiva "elemento" costruisce un
# lato del fiocco di neve con ricorsione di profondita' "n"
#

from random import Random

def elemento(p1, p2, n):
  s = Segment(p1,p2)
  if n > 0:
    s.hide()
    kigdocument.hideobjects()
    a = ConstrainedPoint(1./3., s)
    b = ConstrainedPoint(2./3., s)
    c1 = Circle(a, b)
    c2 = Circle(b, a)
    p = CircleCircleIntersection(c1, c2, -1)    # intersezione 'superiore'
    kigdocument.showobjects()
    elemento(p1, a, n-1)
    elemento(a, p, n-1)
    elemento(p, b, n-1)
    elemento(b, p2, n-1)

r = Random()
centro = Point(r.random(), r.random())
vertice = Point(r.random(), r.random())

triangolo = PolygonBCV(centro, vertice, 3)
triangolo.hide()

v = []
for i in range(3):
  v.append(PolygonVertex(triangolo,i))
  v[i].hide()

depth = 4   # profondita' della ricorsione

prevpoint = v[2]
for i in range(3):
  elemento (v[i], prevpoint, depth)
  prevpoint = v[i]

