Zadnjič sem pisal o tem, kako je Logo kakor feniks ponovno vstal iz pepela, tokrat v preobleki Pythonove želvje grafike. Nekaj preprostih ukazov , pa vam program lahko riše lepe krivulje. Grafika pa lahko postane nekaj posebnega, če pri njenem nastajanju uporabite rekurzijo – programerski prijem, s katerim velik problem razdelite na identične, a nekoliko manjše probleme. Seveda se to da narediti samo pri posebnih problemih. Včasih smo občudovali Hilbertove krivulje, krivulje Sierpinskega, hanojske stolpiče, celo permutacije se dajo programirati rekurzivno. A tokrat (pogled skozi okno pove, da še vedno sneži) si oglejmo Kochovo snežinko.
Koda je naslednja:
#Kochova snežinka, V.Petruna feb.2013
from Tkinter import *
import math
import turtle
a=80
def koch(x,stopnja):
if stopnja<1:
turtle.forward(x)
else:
koch(x/3,stopnja-1)
turtle.left(60)
koch(x/3,stopnja-1)
turtle.right(120)
koch(x/3,stopnja-1)
turtle.left(60)
koch(x/3,stopnja-1)
turtle.heading()
turtle.penup()
turtle.setpos(-600,0)
turtle.pendown()
for n in range(5):
for i in range(3):
koch(243,n)
turtle.right(120)
turtle.penup()
turtle.forward(243)
turtle.pendown()
mainloop()
Dolžina 243 ni izbrana naključno, saj je to
Tako se izognemo napaki zaradi necelega deljenja. Program nam ustvari naslednjo risbico
