Znalost moderního programování otevírá dveře budoucností.

asdfasdf

Algoritmické umění a fraktály

v Pythonu III.

Sdílet příspěvek

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/
asfdasd
asfdasd
asfdasd
asfdasd
asfdasd
asfdasd

Začni hned teď
pracovat na zlepšení svých znalostí.

Vytvoř si vlastní síť zkušeností, přesně tak, jak potřebuješ.