Algoritmické umění a fraktály
v Pythonu III.
Třetí část série věnované algoritmickému umění se zaměřuje na dva výrazné fraktální obrazce, které jsou velmi vhodné pro výuku rekurze, práce s funkcemi a grafickou knihovnou turtle v jazyce Python. Pentagonální vločka i Krishna Anklet rozvíjejí algoritmické myšlení jiným způsobem než klasické fraktály (Kochova vločka, Sierpinského trojúhelník) a nabízejí značný prostor pro kreativní experimentování.
Pentagonální vločka
Charakteristika a didaktický význam
Pentagonální vločka patří mezi fraktální obrazce založené na pětiúhelníkové symetrii. Ve výuce programování slouží jako názorný model geometrické dekompozice a rekurzivního větvení. Studenti si na tomto příkladu osvojují:
práci s rekurzí a ukončovací podmínkou,
předávání objektu želvy jako parametru funkce,
kombinaci cyklu a rekurzivního volání,
orientaci v rovině pomocí přesných úhlů (72°).
Z hlediska algoritmického myšlení je klíčové pochopení toho, že každý základní prvek (pětiúhelník) může být dále rozložen na menší kopie téhož tvaru.
Algoritmický princip
Algoritmus je založen na dvou funkcích:
1. Základní prvek – pomocná funkce vykreslí pravidelný pětiúhelník pomocí cyklu s pěti opakováními.
2. Rekurzivní funkce – při nenulové hloubce rekurze se funkce pětkrát zavolá sama na zmenšený rozměr a nižší úroveň. Mezi jednotlivými voláními se želva posune vpřed a otočí o 72°, čímž vzniká charakteristická struktura vločky.
Technické poznámky
Doporučená hloubka rekurze je maximálně 4–5.
Vyšší hodnoty vedou k výraznému zpomalení vykreslování.
Vhodné je nastavit maximální rychlost želvy (speed(0)).
Funkční příklad v Pythonu
import turtle
def nakresli_petiuhelnik(t, velikost):
"""Vykreslí pravidelný pětiúhelník."""
for _ in range(5):
t.forward(velikost)
t.right(72)
def petiuh_vlocka(t, velikost, uroven):
"""Rekurzivně vykreslí pentagonální vločku."""
if uroven == 0:
nakresli_petiuhelnik(t, velikost)
else:
for _ in range(5):
petiuh_vlocka(t, velikost / 3, uroven - 1)
t.forward(velikost)
t.right(72)
# Nastavení plátna
screen = turtle.Screen()
screen.setup(width=800, height=600)
t = turtle.Turtle()
t.speed(0)
t.penup()
t.goto(-100, 100)
t.pendown()
# Vykreslení vločky
petiuh_vlocka(t, 150, 4)
turtle.done()
Krishna Anklet (Krishna’s Anklet)
Charakteristika a vzdělávací přínos
Krishna Anklet je fraktální spirála kruhů, která se od klasických polygonálních fraktálů liší plynulým, organickým charakterem. Ve výuce je velmi přínosná zejména proto, že:
názorně ukazuje rekurzivní zmenšování parametru,
umožňuje snadnou parametrizaci (poloměr, úhel, pokles),
přirozeně podporuje práci s barvami a estetikou výstupu.
Z didaktického hlediska jde o ideální příklad pro pochopení typů argumentů a postupného řízení rekurzivního procesu.
Algoritmická struktura
Základem je jediná rekurzivní funkce:
v každém kroku vykreslí kruh (nebo jeho část),
zmenší poloměr o konstantní hodnotu,
sníží úroveň rekurze,
ukončí se při dosažení nulové úrovně.
Parametrizace a kreativita
velikost určuje počáteční poloměr kruhu,
uhel definuje rozsah oblouku (360° = celý kruh),
pokles řídí rychlost zmenšování spirály,
barvy umožňují estetické obohacení a variabilitu výsledku.
Funkční příklad v Pythonu
import turtle
def nakresli_spiralu(t, velikost, uhel, pokles, uroven, barvy):
"""Rekurzivně vykreslí spirálu Krishna Anklet."""
if uroven == 0 or velikost <= 0:
return
t.pencolor(barvy[uroven % len(barvy)])
t.circle(velikost, uhel)
nakresli_spiralu(
t,
velikost - pokles,
uhel,
pokles,
uroven - 1,
barvy
)
# Nastavení plátna
screen = turtle.Screen()
screen.setup(width=800, height=600)
t = turtle.Turtle()
t.speed(0)
barvy = ["red", "orange", "yellow", "green", "blue", "purple"]
# Vykreslení spirály
nakresli_spiralu(t, velikost=150, uhel=360, pokles=10, uroven=10, barvy=barvy)
turtle.done()
Pentagonální vločka i Krishna Anklet představují silné didaktické nástroje pro výuku rekurze a algoritmického myšlení v Pythonu. Zatímco pentagonální vločka rozvíjí chápání geometrické symetrie a strukturovaného větvení, Krishna Anklet klade důraz na plynulé změny parametrů a estetiku výsledku. Oba obrazce mají přímý přesah do oblasti počítačové grafiky, vizualizace algoritmů a generativního umění a jsou vhodné jak pro systematickou výuku, tak pro kreativní projekty a soutěžní úlohy.
Související články
Algoritmické umění a fraktály v Pythonu I.
Algoritmické umění a fraktály v Pythonu II.
PUBLIKOVÁNO
18.01.2026, 19:34
ODKAZ
https://www.weloveit.education/Article/20260118-Algoritmicke-umeni-a-fraktaly-v-Pythonu-III/