Kod projektu rysuje atraktory. Obiekty te są tworzone przez prosty algorytm:
1) weź dowolny punkt p0 = (x0, y0),
2) oblicz następny punkt pn+1 = ν(pn) = (xn+1, yn+1), zmień kolor w pn+1,
3) powtarzaj punkt 2 wiele razy...
Wzory potrzebne do obliczenia położeń kolejnych punktów są następujące:
xn+1 = f(xn, yn) = sin(t1 * yn) + t3 * cos(t1 * xn)
yn+1 = g(xn, yn) = sin(t2 * xn) + t4 * cos(t2 * yn)
Spójrz do pliku atraktor_podstawy.l, znajdziesz tam łatwo kod odpowiadający powyższym formułom. Są
to wzory na początek, do dalszych eksperymentów. Różne kombinacje funkcji trygonometrycznych pozwalają osiągać
ciekawe efekty, jednak trzeba nieco cierpliwości by dopasować wzór i wartości współczynników ti.
W pliku app.l znajdziesz pełną aplikację do rysowania atraktorów. Aplikacja używa klasy bazowej
attractor
, która zawiera wszystkie niezbędne funkcje. Dziedziczący z niej custom_attractor
pozwala przedefiniować wzory funkcji f
i g
. Kod ilustruje także jak obliczać
zmiany kolorów punktów. Innym ciekawym rozwinięciem projektu jest dodanie ciągłej, powolnej zmiany
współczynników ti w kolejnych iteracjach, spróbuj...
Pomysł na projekt oraz zestawy współczynników zaczerpnięte z:
Clifford Attractors.