10.02.2014 Views

Fraktale 3D

Fraktale 3D

Fraktale 3D

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Fraktale</strong> <strong>3D</strong><br />

Tomasz Mazurek<br />

promotor: dr inż. Tomasz Martyn


Plan prezentacji<br />

● Wstęp do geometrii fraktalnej.<br />

● Krótki przegląd fraktali 2D.<br />

– konstrukcje klasyczne;<br />

– atraktory IFS;<br />

– L-systemy;<br />

– zbiory Julii i Mandelbrota;<br />

– zastosowania fraktali.<br />

● <strong>Fraktale</strong> <strong>3D</strong><br />

– uogólnienie atraktorów IFS i L-systemów na<br />

trzy wymiary;<br />

– kwaternionowe zbiory Julii i Mandelbrota (Tetrabrot);<br />

– techniki wizualizacji.


Definicja fraktala<br />

Fraktal (wg Mandelbrota) – obiekt geometryczny<br />

posiadający cechę samopodobieństwa, którego<br />

wymiar nie jest liczbą całkowitą.<br />

Problem – co oznacza termin „samopodobieństwo” i<br />

jak wymiar może nie być całkowity?


Definicja samopodobieństwa<br />

Samopodobieństwo – oznacza, że część obiektu jest<br />

podobna do całości.<br />

Jest to nadal definicja nieścisła:<br />

– jakie jest kryterium wyboru części do porównania?<br />

– jakiej definicji podobieństwa używamy?


Wymiar niecałkowity?<br />

Istnieje wiele definicji wymiaru, m.in.:<br />

– wymiar topologiczny;<br />

– wymiar pojemnościowy;<br />

– wymiar samopodobieństwa;<br />

– wymiar Hausdorfa-Besicovitcha.<br />

Większość z definicji wymiarów dopuszcza<br />

wymiary niecałkowite.


Samopodobieństwo odcinka<br />

Związek między liczbą<br />

fragmentów, a<br />

współczynikiem redukcji.<br />

a= 1 s D<br />

D= loga<br />

log1/ s =log3 log3 =1


Krzywa Kocha<br />

Dla krzywej Kocha D nie jest<br />

całkowite!<br />

D= loga<br />

log1/ s =log4 log3 ≈1,2619


Wymiar Hausdorfa<br />

Tzw. wymiar fraktalny. Trudny do obliczenia,<br />

wymaga dodatkowych definicji.<br />

∞<br />

h s A=inf {∑<br />

i =0<br />

diamU i<br />

s }<br />

h s A=lim<br />

s0<br />

h s A


Zbiór Cantora<br />

Daje w granicy pył<br />

punktów – zbiór<br />

równoliczny z<br />

odcinkiem, ale nigdzie<br />

gęsty.


Krzywa Hilberta<br />

Jedna z krzywych<br />

wypełniających<br />

przestrzeń – stanowi<br />

dowód równoliczności<br />

kwadratu i odcinka.


Trójkąt Sierpińskiego


Atraktory IFS<br />

Układ IFS - skończony zbiór przekształceń w 1<br />

, ...,<br />

w n<br />

działających na zbiorach punktów, postaci:<br />

x n1<br />

=a∗x n<br />

b∗y n<br />

c y n1<br />

=d∗x n<br />

e∗y n<br />

d


Atraktory IFS<br />

Operator Hutchinsona – suma poszczególnych<br />

operatorów w i<br />

. Działa również na zbiorach<br />

punktów.<br />

W A=w 1<br />

A∪w 2<br />

A∪...∪w N<br />

A


Atraktory IFS<br />

Atraktor IFS to zbiór będący niezmienniczym pod<br />

wpływem operatora Hutchinsona W(A). W(A)<br />

przekształca punkty atraktora w inne punkty<br />

atraktora. Dla klasy przekształceń zwanej<br />

przekształceniami zwężającymi atraktor jest<br />

osiągalny przez przekształcanie dowolnego zbioru<br />

początkowego.


Trójkąt Sierpińskiego<br />

Trzy przekształcenia:<br />

w 0<br />

x , y = x /2−0,25 , y/2<br />

w 1<br />

x , y = x /20,25 , y/2<br />

w 2<br />

x , y =x /2, y /23/4


Paprotka Barnsleya<br />

Cztery przekształcenia:<br />

w 1<br />

: sx=0,5sy =0,25=80tx =−0,1ty=0,1<br />

w 2<br />

: sx=0,875sy=0,833 =−2tx=0ty=0,33<br />

w 3<br />

: sx=−0,5 sy =0,25=80tx =0,1ty=0<br />

w 4<br />

:sx =0,01 sy=0,2=1tx =0ty=−0,25


Kompresja fraktalna<br />

●<br />

●<br />

●<br />

●<br />

koncepcja zapisu danego obrazu za pomocą wzoru<br />

na fraktal;<br />

realizowalna za pomocą IFS rozszerzonej o<br />

pojęcia jasności i kontrastu;<br />

zawsze możliwa do realizacji – w najgorszym<br />

przypadku za pomocą w*h przekształceń;<br />

problemem pozostaje minimalizacja liczby<br />

przekształceń.


L-systemy<br />

L-systemy zostały opracowane przez Aristida<br />

Lindenmayera do opisu wzrostu roślin. Są opisane<br />

jako zbiór produkcji nad pewnym alfabetem, wraz<br />

z symbolem początkowym (aksjomatem).<br />

Produkcje są postaci:<br />

Symbol Ciąg<br />

symboli


L-systemy<br />

Np. krzywa Kocha może być opisana<br />

L-systemem nad alfabetem +, -, F z aksjomatem F<br />

i z jedną znaczącą produkcją:<br />

F FF−−FF


L-systemy<br />

L-systemy z<br />

odpowiednio<br />

dobranym alfabetem i<br />

produkcjami mogą<br />

tworzyć bardzo<br />

realistyczne obrazy<br />

roślin.


Zbiory Julii<br />

Zbiory Julii to granice tzw. basenów przyciągania<br />

dla atraktorów iterowanych przekształceń w<br />

dziedzinie liczb zespolonych. Najpopularniejsze<br />

są przekształcenia postaci:<br />

z n1<br />

= z n 2 c


Zbiory Julii<br />

Basenem przyciągania nazywamy taki podzbiór<br />

dziedziny przekształcenia (tu płaszczyzny<br />

zespolonej), którego wszystkie punkty w granicy<br />

dążą do atraktora.<br />

Typowy algorytm wizualizacji polega na wykonaniu<br />

np. 100 iteracji dla każdego punktu i sprawdzeniu,<br />

czy punkt uciekł z pewnego otoczenia punktu 0.


-0.824 - 0.1711i


0.300283 + 0.48857i


0.3245+0.04855i


Zbiór Mandelbrota<br />

Można zaobserwować (i udowodnić), że w<br />

zależności od parametru c zbiory Julii są albo<br />

spójne, albo stają się pyłem punktów. Można<br />

udowodnić, że zależy to od zachowania punktu 0<br />

+ 0i. Jeżeli punkt ten w trakcie iteracji ucieka do<br />

nieskończoności, to zbiór Julii jest pyłem<br />

punktów, a w przeciwnym wypadku jest spójny.


Zbiór Mandelbrota<br />

Mandelbrot postanowił wykonać „mapę” zbiorów<br />

Julii ustalając z 0<br />

=0+0i i iterując po parametrze c.<br />

Uzyskany zbiór okazał się sam posiadać własności<br />

fraktalne oraz wiele ciekawych własności<br />

matematycznych. Jest on znany pod nazwą<br />

„Zbioru Mandelbrota”.


Zbiór Mandelbrota


-0.415-0.683i


Samopodobieństwo


Zastosowania fraktali<br />

●<br />

●<br />

●<br />

●<br />

●<br />

Dostarczanie wrażeń estetycznych.<br />

Poszukiwanie nowych faktów metematycznych.<br />

Język opisu kształtów i procesów przyrody.<br />

Kompresja obrazów rzeczywistych.<br />

Generowanie obrazów udających rzeczywiste.


<strong>Fraktale</strong> <strong>3D</strong><br />

Co nam daje trzeci wymiar?<br />

● Więcej wrażeń estetycznych.<br />

● Poszukiwanie faktów matematycznych dla<br />

większej liczby wymiarów lub uogólnianie<br />

istniejących.<br />

● Opis przyrody w trzech wymiarach.<br />

● Kompresja danych <strong>3D</strong>.<br />

● Generowanie obiektów przestrzennych.


Trójwymiarowe L-systemy<br />

Obecnie standardowa metoda generacji<br />

trójwymiarowych drzew. Wymaga pewnych<br />

rozszerzeń alfabetu i produkcji:<br />

● litery parametryczne, np. R[30, 5];<br />

● produkcje niedeterministyczne;<br />

● obsługa gałęzi przez nawiasowanie '(' rozpoczyna<br />

gałąź, a ')' ją kończy;<br />

● pojęcie wieku elementu.


Trójwymiarowe L-systemy


Trójwymiarowe L-systemy


Trójwymiarowe L-systemy


Trójwymiarowe atraktory IFS<br />

Koncepcyjnie proste, oznacza zwykłe rozwinięcie<br />

idei dwuwymiarowych IFS na 3 wymiary.<br />

Przekształcenia mają postać.<br />

w i<br />

:<br />

x d n١ ٠٠<br />

y n١<br />

d d d ٠١ ٠٢ ٠٣<br />

d d d d<br />

= ١٠ ١١ ١٢ ١٣<br />

∗<br />

d d d d ٢٠ ٢١ ٢٢ ٢٣<br />

r d d d d n١ ٣٠ ٣١ ٣٢ ٣٣<br />

z n١<br />

x n<br />

y n<br />

z n<br />

r n


Gąbka Mengera


Sześcian Cantora


Liść fraktalny


Chwast fraktalny


Wizualizacja atraktorów IFS<br />

(metodą z definicji)<br />

Metoda klasyczna (z definicji):<br />

● zaczynamy od dowolnego obrazu startowego A 0<br />

;<br />

●<br />

●<br />

przetwarzamy ten obraz operatorem Hutchinsona<br />

W(A);<br />

powtarzamy tak długo, aż obraz przestanie<br />

zmieniać się w kolejnych iteracjach.


Metoda klasyczna wizualizacji IFS<br />

●<br />

●<br />

●<br />

w praktyce bardzo<br />

powolna;<br />

operacja przetworzenia<br />

całego obrazu<br />

operatorem W(A) jest<br />

kosztowna;<br />

trzeba ją wykonywać,<br />

aż obraz pierwotny<br />

zmniejszy się do<br />

rozmiaru piksela.


Metoda probablistyczna<br />

Korzysta z faktu, że każdy obraz zbiega do<br />

atraktora, w tym pojedynczy punkt. Znana<br />

również jako „gra w chaos”.<br />

● wybierz punkt startowy;<br />

● zaznacz na ekranie i przetwórz losowo wybranym<br />

przekształceniem w i<br />

;<br />

●<br />

wykonuj tak długo, aż uzyskasz zadowalający<br />

obraz wynikowy (trzeba to ustalać<br />

doświadczalnie).


Metoda probablistyczna<br />

●<br />

●<br />

●<br />

dużo szybsza od<br />

metody klasycznej;<br />

przetwarzanie<br />

pojedynczych punktów<br />

jest łatwiejsze niż<br />

całych obrazów;<br />

punktów jest nadal za<br />

dużo by wygenerować<br />

obraz <strong>3D</strong> w rozsądnym<br />

czasie (setki milionów<br />

punktów).


Metoda przekształceń odwrotnych<br />

Znana również jako algorytm czasu ucieczki (ang.<br />

escape time). Wiemy, że atraktor jest<br />

niezmienniczy pod wpływem W(A), więc również<br />

W -1 (A). Punkty atraktora są pod jego wpływem<br />

przetwarzane na inne punkty atraktora. Punkty<br />

poza atraktorem pod wpływem W(A) będą<br />

zbiegały do atraktora, natomiast pod wpływem<br />

W -1 (A) będą od niego uciekały do<br />

nieskończoności. Pozwala to zaproponować<br />

metodę sprawdzania czy dany punkt należy do<br />

atraktora.


Metoda przekształceń odwrotnych<br />

● Dla każdego próbkowanego punktu p.<br />

● Utwórz ciąg jego przeciwobrazów<br />

W -1 (p), ..., W -n (p);<br />

● Sprawdź, czy któryś punkt przeciwobrazów<br />

opuścił ustalone otoczenie atraktora.<br />

Generowanie przeciwobrazów w tej formie wymaga<br />

wykładniczej ilości obliczeń w funkcji głebokości<br />

sprawdzania, dlatego ważne jest odpowiednie<br />

dobranie tego parametru.


Kwaternionowe zbiory Julii


Algebra kwaternionów<br />

Kwaterniony albo liczby podwójnie zespolone, to<br />

wprowadzone przez Williama Hamiltona<br />

uogólnienie liczb zespolonych na 4 wymiary.<br />

q=ab∗ic∗ jd ∗k<br />

q=zw∗ j<br />

i ٢ = j ٢ =k ٢ =i∗ j∗k=−١<br />

[ z w<br />

] −w z


Zbiór Julii 4D<br />

Zbiór Julii w dziedzinie kwaternionów definiujemy<br />

analogicznie, jak w dziedzinie liczb zespolonych,<br />

jako brzeg basenu przyciągania dla atraktora<br />

przekształcenia postaci<br />

q n١<br />

=q n ٢ c


Powrót do <strong>3D</strong><br />

Aby powrócić do przestrzeni trójwymiarowej<br />

wizualizujemy np. tylko te punkty, których<br />

ostatnia współrzędna (d), jest równa pewnej<br />

liczbie, np. 0.<br />

W sensie geometrycznym doknujemy przecięcia<br />

czterowymiarowego zbioru w hiperprzestrzeni<br />

przestrzenią określoną równaniem d = 0.


Algorytmy wizualizacji<br />

Możliwa jest wizualizacja przez dyskretyzację<br />

przestrzeni i testowanie przynależności punktów<br />

dyskretnych do zbioru Julii, jednakże jest ona<br />

kosztowna już dla przypadku dwuwymiarowego.<br />

Zamiast tego często stosuje się algorytm<br />

probablistycznej iteracji (gry w chaos) dla<br />

przekształceń odwrotnych do z 2 +c.<br />

w n١<br />

=w−c ∨ w n١<br />

=−w−c


Algorytm oszacowania odległości<br />

(unbounding volumes)<br />

Możliwe jest oszacowanie od dołu odległości<br />

danego punktu od zbioru Julii.<br />

d z<br />

∣z n ∣<br />

٢∗∣z' n<br />

∣ log∣z n ∣<br />

z' n١<br />

=٢∗z n<br />

∗z ' n


Algorytm oszacowania odległości<br />

Oszacowanie pozwala na (stosunkowo) szybką<br />

iterację wzdłuż promienia dla metody<br />

Ray-Tracingu


Rezultat


Kolejne przecięcia


Obrót w hiperprzestrzeni


Przecięcie zbioru trójwymiarowego


Zbiór Tetrabrot


Uogólnienie zbioru Mandelbrota<br />

W podobny sposób do tego, który użyliśmy do<br />

uogólnienia zbiorów Julii możemy uogólnić zbiór<br />

Mandelbrota. Jest to zbiór tych<br />

(kwaternionowych) parametrów c, dla których<br />

odpowiadający im zbiór Julii jest spójny.<br />

K ={c:¬ P c °n 0∞}


Metoda wizualizacji<br />

Również istnieją oszacowania odległości.<br />

∣ w n ln∣w n ∣ j<br />

2∗∣w∣ j<br />

1 / 2 n w' n∣ d w 0, K 2,c <br />

w ' n<br />

= d<br />

dw [ P °n c<br />

] w=w0


Obroty hiperprzestrzenne


Literatura<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

H.-O. Peitgen, H. Jurgens, D. Saupe – <strong>Fraktale</strong><br />

granice chaosu<br />

Tomasz Martyn – <strong>Fraktale</strong> i obiektowe algorytmy<br />

ich wizualizacji<br />

Jacek Kdrewicz – <strong>Fraktale</strong> i chaos<br />

John C. Hart i in.– Ray Tracing Deterministic <strong>3D</strong><br />

Fractals<br />

Keenan Crane – Ray Tracing Quaternion Julia<br />

Sets on GPU<br />

Etienne Martineau – On a Bicomplex Distance<br />

Estimation for the Tetrabrot


Pytania?

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!