Lot nad zbiorem Julii

Wielokrotnie - między innymi miesiąc temu - zajmowaliśmy się programami generującymi obrazy za pomocą różnych formuł matematycznych. Uzyskiwaliśmy piękne, ale statyczne obrazy. Dzisiaj nadamy im dynamikę - z wirtualną kamerą zanurzymy się w matematycznym przestworze.

...

double A = 0.16, B = 0.58;

Rysunek 9. A może nieruchoma scena i dynamiczny zbiór Julii? Wymyślmy jakiś sposób powolnej, ostrożnej wędrówki po dwuwymiarowej przestrzeni parametrów A i B kształtu zbioru i dla każdych wartości wyrenderujmy obraz. Doprawmy wszystko unikatową recepturą przypisywania koloru i - jeśli mamy dużo czasu - zastosujmy procedurę wygładzania krawędzi przez uśrednianie okolicznych trajektorii. Na zakończenie scalmy wszystkie obrazy w film.Kliknij, aby powiększyćRysunek 9. A może nieruchoma scena i dynamiczny zbiór Julii? Wymyślmy jakiś sposób powolnej, ostrożnej wędrówki po dwuwymiarowej przestrzeni parametrów A i B kształtu zbioru i dla każdych wartości wyrenderujmy obraz. Doprawmy wszystko unikatową recepturą przypisywania koloru i - jeśli mamy dużo czasu - zastosujmy procedurę wygładzania krawędzi przez uśrednianie okolicznych trajektorii. Na zakończenie scalmy wszystkie obrazy w film. ...

for(klatka=0; klatka<il_klatek; ++klatka)

{

...

xxr = xr * xr - yr * yr + A;

yr = 2 * xr * yr + B;

...


Jest to pasjonujące doświadczenie. W powyższym fragmencie parametry A i B są ustalone. A gdyby tak zrealizować to następująco (porównaj rysunek 9):

double A,B,A_start,B_start,A_end,B_end,dA,dB;

...

dA = (A_end - A_start)/il_klatek;

dB = (B_end - B_start)/il_klatek;

for(klatka=0; klatka<il_klatek; ++klatka)

{

A = A_start + dA * klatka;

B = B_start + dB * klatka;

...


Jest to algorytm bardzo podobny do tego, który omawialiśmy "w okolicy" rysunku 8 i który dotyczył zmiany parametrów wizualizacji zbioru. Znów mamy wartości początkowe i końcowe i znając liczbę klatek, obliczamy ich jednoklatkowe przyrosty. Sporządzenie filmu, w którym każda klatka została utworzona z nieco innym zestawem parametrów A i B, ukazuje niezwykłą złożoność i piękno zbiorów Julii. Scena jest teraz statyczna, ale za to żyje i porusza się niezwykła galaktyka Julii.

Rysunek 10. Inna receptura przypisywania koloru - barwa zależy od dystansu, na jaki oddalił się iterowany punkt, a nie od tego, w ilu krokach osiągnął wyznaczoną granicę.Kliknij, aby powiększyćRysunek 10. Inna receptura przypisywania koloru - barwa zależy od dystansu, na jaki oddalił się iterowany punkt, a nie od tego, w ilu krokach osiągnął wyznaczoną granicę.Co dalej? Trudno powiedzieć - opcji jest mnóstwo. Możemy spróbować innego algorytmu przypisania koloru do punktu, z którego rozpoczynamy iterację. Dotychczas kolor zależał od tego, w ilu krokach trajektoria punktu osiągała granicę dwóch jednostek. W naszych poszukiwaniach piękna ta dwójka nie jest święta... Możemy też zupełnie inaczej przypisywać kolor - na przykład barwa punktu niech zależy nie od liczby iteracji, a od odległości, na jaką punkt oddalił się od miejsca startu. A może nie od miejsca startu, a od środka układu odniesienia? Próba takiej implementacji koloru jest pokazana na rysunku 10.

Nie ma jednoznacznej receptury, jak filmować zbiory Julii. Jak w życiu - liczy się pomysłowość i precyzja. Proszę przysyłać swoje filmy wraz z krótkimi opisami. Na Państwa prace będę czekać przez dwa miesiące (pod adresem mailto:Andrzej_Stasiewicz@idg.com.pl ), a potem dokonamy krótkiego podsumowania. Najlepsze prace - jak zwykle - nagrodzimy upominkami.
Ocena:
Twoja ocena:

Komentarze

Kariera w IT 2012

Kariera w IT 2012
Uczelnie, rynek pracy, rekrutacja, pracodawcy, rozwój zawodowy - czyli wszystko, co chcielibyście wiedzieć o pracy specjalistów IT w Polsce. Piszemy jakie uczelnie wybrać, dlaczego warto studiować informatykę i kierunki techniczne, jak wygląda proces rekrutacji i jak dobrze wypaść przed pracodawcą, opisujemy pracodawców - firmy IT - i możliwe ścieżki kariery.

Polecane