## Recursieve tekening met vierkanten in 2 kleuren
    
from PIL import Image, ImageDraw

# teken een vierkant 
def teken_vierkant (zijde, x, y, kleur):
    doek.rectangle ([x, y, x+zijde, y+zijde], kleur)

# bij n=1 wordt er een vierkant getekend
# anders vier patronen  op niveau n-1
#
# x,y = coördinaten van de linkerbovenhoek van het patroon    
def teken_patroon (n, zijde, x, y, kleur1, kleur2):
    if n == 1:
        teken_vierkant (zijde, x, y, kleur1)
    else:
        teken_patroon (n-1, zijde/2, x,         y,         kleur1, kleur2)
        teken_patroon (n-1, zijde/2, x+zijde/2, y,         kleur2, kleur1)
        teken_patroon (n-1, zijde/2, x,         y+zijde/2, kleur2, kleur1)
        teken_patroon (n-1, zijde/2, x+zijde/2, y+zijde/2, kleur1, kleur2)

prent = Image.new("RGB", [300, 300], color="grey")
doek = ImageDraw.Draw(prent)
teken_patroon (6, 256, 22, 22, "red", "black")  # n ≤ 8
prent.show()
