2009-07-12 13 views
12

Szukam informacji o tym, jak rysować fraktale płomieniowe z googlowania w okolicy Nie mogłem znaleźć wiele, obie strony wyjaśniają, jak korzystać z narzędzi stron trzecich lub zbyt skomplikowane, aby je zrozumieć. Ktoś wie jak/dlaczego działa? lub wskazać mnie w kierunku niezbyt skomplikowanych implementacji?Rysowanie fraktali z płomieniami

Odpowiedz

9

Pisałem prezentację beamer, który obejmuje podstawy w fraktale płomienia:

https://www.math.upenn.edu/~peal/files/Fractals[2009]Beamer[Eng]-PAXINUM.pdf

Wszystkie zdjęcia są zrobione z mojego wykonania Java algorytmu płomienia.

Kod źródłowy można znaleźć tutaj:

http://sourceforge.net/projects/flamethyst/

wierzę, że pdf http://flam3.com/flame_draves.pdf razem z wdrożenia w java powyżej powinny Ci długą drogę.

+0

Jakieś lustra dla powyższych linków? – DanielGibbs

+1

Tak, jest teraz na sourceforge: http: // sourceforge.net/projects/flamethyst/ –

+0

Drugi, muszę zaktualizować, plik musiał zniknąć. –

1

Myślę, że fraktale byłyby zbyt kosztowne pod względem obliczeniowym w czasie rzeczywistym.

Jeśli przyjdę do Google "simulating fire in computer graphics", otrzymam szereg interesujących rzeczy, które sugerują, że nie jest to trywialny problem (niespodzianka). SIGGRAPH to konferencja, której przebieg chcesz sprawdzić. Ale bądź ostrzeżony - to bardzo matematycznie trudne wyzwanie.

8

Mogłeś przeczytać original paper Scott Draves, który wyszczególnia dokładnie jak i dlaczego one działają, a także przewodnik do implementacji w Pseudokod.

Dopóki posiadasz podstawową wiedzę z zakresu matematyki, zrozumiałe powinno być stosunkowo proste (choć jest to dość długie!). Szczerze mówiąc, prawdopodobnie można zignorować wiele z tego i po prostu przeczytać o kodzie, ponieważ znaczna część tekstu jest informacją w tle.

+0

Papier Scotta jest świetny. Fascynujący i dość przystępny do rozruchu. – Cheezmeister

+0

Należy zauważyć, że algorytm Draves nie jest jedynym algorytmem, ale jest prawdopodobnie najbardziej popularny. –

3

Fraktalne płomienie są w zasadzie odmianą iterated function system (IFS). Masz szereg funkcji, dzięki którym raz po raz przekazujesz jeden punkt. Każda funkcja jest kombinacją transformacji afinicznej i jednej lub więcej odmian.

W każdej iteracji wybrana jest tylko jedna funkcja (losowo), a wynikowy punkt jest kumulowany w buforze i używany jako punkt początkowy następnej iteracji.

Bufor jest następnie zapisywany jako obraz po przetworzeniu i przefiltrowaniu, zgodnie z opisem w flame paper.

Najlepsze odniesienie to nadal oryginalna implementacja, flam3.