Nostalgija(2)

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 3^5. Tako se izognemo napaki zaradi necelega deljenja. Program nam ustvari naslednjo risbico

Ta vnos je objavil Vinc v Programiranje, Pythonove animacije. Dodaj zaznamek do trajne povezave .

O Vinc

Končal gimnazijo v Črnomlju 1971, pričel honorarno poučevati na tej gimnaziji v šol.letu 1973/74, se v šol. letu 1976/77 zaposlil kot učitelj matematike, leta 1978 diplomiral iz pedagoške matematike pri dr. Niku Prijatelju s temo Galoisova teorija. Na gimnaziji in poklicni kovinarski šoli učil matematiko, fiziko in računalništvo ter informatiko, dokumentaristiko in arhivistiko. Dolgoletni mentor šahovskega, fotografskega, fizikalnega, računalniškega in<a \href{http://www2.arnes.si/48/sscrnomelj/astro.html}{ astronomskega} krožka. Absolvent 3. stopnje pedagoške fizike, v 90. letih član skupine za prenovo gimnazijske fizike, avtor programske opreme za merilno krmilni vmesnik, soavtor učbenikov za gimnazijo Fizika-Mehanika in Fizika-Elektrika. Mentor trinajstim raziskovalnim nalogam v okviru Gibanja Znanost mladini ter trem raziskovalnim nalogam v okviru Krkinih nagrad in številnim tekmovalcem iz logike, matematike, fizike in računalništva. Mentor \href{http://www2.arnes.si/48/ssnmcrnom5/sola/}{2. spletne strani šole}, pobudnik in od 2007 do 2010 urednik spletnih učilnic Srednje šole Črnomelj. Pobudnik šolske Facebook strani. Več najdete na njegovi \href{http://vincenc.petruna.com/}{spletni strani.}