arrow_back Powrót do aplikacji

Fraktale w naturze

WPROWADZENIE

Fraktale to fascynujące obiekty matematyczne, które charakteryzują się samopodobieństwem – ich fragmenty wyglądają podobnie do całości, niezależnie od skali. Odkryte i spopularyzowane przez Benoît Mandelbrota, fraktale znalazły zastosowanie w wielu dziedzinach, od grafiki komputerowej po analizę rynków finansowych.

Fraktale w przyrodzie

Choć fraktale są abstrakcyjnymi konstrukcjami matematycznymi, ich wzory często pojawiają się w naturze:

  • Płatki śniegu: Każdy płatek śniegu posiada unikalny, ale samopodobny kształt.
  • Brokuły romanesco: Ten rodzaj brokuła charakteryzuje się spiralną strukturą, gdzie każda mniejsza różyczka jest podobna do całości.
  • Linie brzegowe: Długość linii brzegowej zależy od skali pomiaru – im dokładniejszy pomiar, tym dłuższa linia, co wynika z jej fraktalnej natury.
  • Paprocie: Struktura paproci jest samopodobna – każda gałązka przypomina kształtem całą paproć.

Trójkąt Sierpińskiego

Jednym z klasycznych przykładów fraktala jest trójkąt Sierpińskiego. Można go wygenerować w następujący sposób:

  1. Zacznij od równobocznego trójkąta.
  2. Podziel go na cztery mniejsze, identyczne trójkąty.
  3. Usuń środkowy trójkąt.
  4. Powtórz kroki 2 i 3 dla pozostałych trzech trójkątów.
  5. Kontynuuj proces w nieskończoność.

KOD W JĘZYKU PYTHON

Zobacz w Google Colaboratory


JAK DZIAŁA PROGRAM?

Program ten rysuje fraktal znany jako Trójkąt Sierpińskiego, korzystając z biblioteki matplotlib w Pythonie. Działa on w następujący sposób:

  1. Import biblioteki:
    • import matplotlib.pyplot as plt importuje bibliotekę do tworzenia wykresów i nadaje jej skróconą nazwę plt, aby ułatwić jej użycie.
  2. Definicja funkcji sierpinski:
    • Funkcja ta przyjmuje dwa argumenty: points (wierzchołki trójkąta) i depth (głębokość rekursji).
    • Jeśli depth wynosi 0, funkcja kończy działanie (warunek stopu rekursji).
    • W przeciwnym razie:
      • Wyodrębnia współrzędne wierzchołków trójkąta (p1p2p3) z listy points.
      • Oblicza środki boków trójkąta (m1m2m3).
      • Rysuje kontur trójkąta za pomocą plt.plot.
      • Wywołuje samą siebie (rekurencyjnie) trzy razy, dla trzech mniejszych trójkątów utworzonych przez połączenie wierzchołków z środkami boków, zmniejszając depth o 1.
  3. Ustawienia początkowe i rysowanie:
    • points = [(0, 0), (1, 0), (0.5, 0.866)] definiuje wierzchołki początkowego trójkąta.
    • depth = 5 ustala głębokość rekursji (im większa wartość, tym bardziej szczegółowy fraktal).
    • plt.figure(figsize=(8, 8)) tworzy okno wykresu o rozmiarze 8×8 cali.
    • plt.axis('off') ukrywa osie wykresu.
    • sierpinski(points, depth) wywołuje funkcję sierpinski, rozpoczynając rysowanie fraktala.
    • plt.show() wyświetla wygenerowany wykres.
arrow_back Powrót do aplikacji