MC, 2025
Ilustracja do artykułu: Dywan Sierpińskiego w Pythonie – Jak Stworzyć Ten Niesamowity Fraktal?

Dywan Sierpińskiego w Pythonie – Jak Stworzyć Ten Niesamowity Fraktal?

Fraktale to fascynujący temat w matematyce, a jednym z najbardziej rozpoznawalnych jest dywan Sierpińskiego. Jest to fraktal o prostych zasadach, który po wielu iteracjach tworzy złożoną strukturę. Dzięki Pythonowi, możemy łatwo zrozumieć, jak działa ten fraktal, a także stworzyć jego wizualizację. W tym artykule dowiesz się, czym jest dywan Sierpińskiego, jak go zrealizować w Pythonie i co sprawia, że jest to tak wyjątkowy fraktal. Zaczynajmy!

1. Co to jest Dywan Sierpińskiego?

Dywan Sierpińskiego to jeden z najsłynniejszych fraktali, który jest przykładem obiektu o wymiarze fraktalnym między 1 a 2. Został zaprezentowany przez matematyka Wacława Sierpińskiego w 1916 roku i jest to fraktal przestrzenny. Dywan Sierpińskiego zaczyna się jako kwadrat, z którego w kolejnych krokach usuwane są mniejsze kwadraty, tworząc strukturę przypominającą siatkę.

Proces tworzenia dywanu Sierpińskiego jest iteracyjny i polega na podziale każdego kwadratu na 9 mniejszych kwadratów, a następnie usunięciu środkowego kwadratu. Powtarzając ten proces na każdym nowym mniejszym kwadracie, uzyskujemy fraktalną strukturę. Z każdą iteracją, wzór staje się coraz bardziej złożony, ale nadal opiera się na prostych zasadach matematycznych. To piękno fraktali!

2. Jak stworzyć Dywan Sierpińskiego w Pythonie?

Python to doskonałe narzędzie do wizualizacji fraktali, a stworzenie dywanu Sierpińskiego jest w nim całkiem proste! Aby to zrobić, skorzystamy z popularnej biblioteki graficznej matplotlib, która pozwala na tworzenie wizualizacji w Pythonie. W pierwszym kroku musimy stworzyć funkcję, która będzie rysować nasz dywan.

2.1 Przykład kodu: Podstawowa wersja Dywanu Sierpińskiego

Oto przykład, jak można zaimplementować dywan Sierpińskiego w Pythonie:

import matplotlib.pyplot as plt

def sierpinski(x, y, size, depth):
    if depth == 0:
        return
    # Rysowanie 4 mniejszych kwadratów
    for i in range(3):
        for j in range(3):
            if i != 1 or j != 1:
                sierpinski(x + i * size / 3, y + j * size / 3, size / 3, depth - 1)
    plt.fill([x, x + size, x + size, x], [y, y, y + size, y + size], 'b')

def main():
    fig, ax = plt.subplots()
    ax.set_aspect('equal')

    sierpinski(0, 0, 300, 4)
    
    plt.xlim(0, 300)
    plt.ylim(0, 300)
    plt.show()

if __name__ == '__main__':
    main()

W tym przykładzie stworzyliśmy funkcję sierpinski, która rysuje kwadraty o mniejszym rozmiarze w każdym kroku. Funkcja przyjmuje współrzędne początkowe x i y, rozmiar kwadratu oraz głębokość, która określa, ile razy powtarzamy proces rysowania mniejszych kwadratów. Wartość depth decyduje o stopniu szczegółowości naszego fraktala. Im większa głębokość, tym bardziej złożony staje się dywan Sierpińskiego.

3. Jak działa kod?

W powyższym przykładzie zaczynamy od dużego kwadratu. Następnie dzielimy go na 9 mniejszych kwadratów, usuwamy środkowy, a pozostałe 8 kwadratów poddajemy tej samej procedurze. Proces powtarzamy dla każdej kolejnej generacji, aż osiągniemy ustaloną głębokość. Dzięki temu generujemy fraktal, który ma coraz mniejsze detale, zbliżając się do nieskończoności.

Za pomocą matplotlib rysujemy każdy z mniejszych kwadratów. Funkcja plt.fill() używana jest do wypełniania przestrzeni pomiędzy współrzędnymi punktów, tworząc efekt wizualny w postaci kwadratu.

4. Eksperymentowanie z głębokością i rozmiarem

Dywan Sierpińskiego ma to do siebie, że zmienia się w zależności od głębokości i rozmiaru, które wybierzesz. Możesz eksperymentować z tymi parametrami, aby zobaczyć, jak fraktal zmienia się w zależności od liczby iteracji.

Na przykład, jeśli zmniejszysz głębokość do 2, uzyskasz prostszy, mniej szczegółowy wzór, który nadal przypomina dywan Sierpińskiego, ale nie ma tyle detali:

sierpinski(0, 0, 300, 2)

Zwiększając głębokość do 5, fraktal stanie się bardziej skomplikowany i pełen szczegółów. Z każdą kolejną iteracją fraktal staje się bardziej wyrafinowany, pokazując, jak matematyka może prowadzić do niesamowitych wizualnych efektów.

5. Rozszerzenia i zastosowania

Chociaż dywan Sierpińskiego to klasyczny fraktal, możesz wykorzystać go do nauki o fraktalach, grafice komputerowej, a także w wizualizacji algorytmów. Możliwości są naprawdę szerokie:

  • Algorytmy fraktalne: Dywan Sierpińskiego jest doskonałym przykładem algorytmu rekurencyjnego, który pomaga w nauce podstaw programowania.
  • Grafika komputerowa: Fraktale są często wykorzystywane w grafice komputerowej do generowania skomplikowanych wzorów, tekstur, a nawet animacji.
  • Matematyka i edukacja: Dywan Sierpińskiego jest również popularnym tematem w matematyce, wykorzystywanym w szkołach i uczelniach do nauki o fraktalach i geometrii.

6. Wnioski

Dywan Sierpińskiego to fascynujący fraktal, który może być zarówno inspirującą zabawą w programowaniu, jak i wprowadzeniem do bardziej zaawansowanych zagadnień matematycznych. Dzięki Pythonowi i bibliotece matplotlib, jego tworzenie staje się bardzo proste i intuicyjne. Mam nadzieję, że ten artykuł zainspirował Cię do dalszych eksperymentów z fraktalami i pozwolił Ci zrozumieć, jak piękne i złożone mogą być struktury generowane przez proste zasady matematyczne. Czas więc na Twój własny Dywan Sierpińskiego!

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: