#!/usr/bin/python

# Sierpinski-Dreieck
#
# GZ 2011, TU Clausthal, http://zach.in.tu-clausthal.de/cg_in_schule/

import Image
import random
import sys

im = Image.new("RGB", (512, 512), (256, 256, 256) )

# set number of iterations
if len(sys.argv) > 1:
    N = int( sys.argv[1] )
else:
    N = 10000

# start at corner (0,0)
x = 0.0
y = 0.0

for i in range( 0, N ):

    r = random.random()         # pick one corner at random
    if r < 0.333:
        x0 = 0.0
        y0 = 0.0
    elif r < 0.6667:
        x0 = 512.0
        y0 = 0.0
    else:
        x0 = 256.0
        y0 = 443.4

    x = ( x0 + x ) / 2.0        # halber Weg zwischen x und x0
    y = ( y0 + y ) / 2.0

    im.putpixel( (int(x), int(y)), (int(x), int(y), 0) )        # mark orbit
    # eigtl muesste man die baryzentrischen Koord als RGB interpretieren
    
im.show()

#vim:expandtab:
