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