GKIW Moduł 6 - Modelowanie obiektów: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
m Zastępowanie tekstu – „,...,” na „,\ldots,” |
||
(Nie pokazano 16 wersji utworzonych przez 2 użytkowników) | |||
Linia 26: | Linia 26: | ||
|valign="top"| | |valign="top"| | ||
Wydawać by się mogło, że najprostszą forma modelowania krzywej jest wskazanie zbioru punktów na niej leżących a następnie połączenie ich krzywą interpolującą – najprościej wielomianową. | Wydawać by się mogło, że najprostszą forma modelowania krzywej jest wskazanie zbioru punktów na niej leżących a następnie połączenie ich krzywą interpolującą – najprościej wielomianową. | ||
Jeżeli dany jest ciąg parami różnych liczb <math>t_0, t_1, t_2, …t_n </math> – węzłów interpolacyjnych i odpowiadających im punktom <math>P_0, P_1, P_2,…P_n | Jeżeli dany jest ciąg parami różnych liczb <math>t_0, t_1, t_2, …t_n</math> – węzłów interpolacyjnych i odpowiadających im punktom <math>P_0, P_1, P_2,…P_n</math>. To poszukujemy krzywej wielomianowej <math>P(t)</math> takiej, że jest ona stopnia co najwyżej <math>n</math> oraz <math>P(t_i)=P_i</math> dla każdego <math>i</math>. Tak sformułowane zadanie jest zadaniem interpolacyjnym Lagrange’a i ma dokładnie jedno rozwiązanie w postaci: | ||
<math>P(t)=\Sigma_{i=0 }^n P_i( \prod_{j=0j\ne i}^n \frac{t-t_j}{t_i-t_j})</math> | <math>P(t)=\Sigma_{i=0 }^n P_i( \prod_{j=0j\ne i}^n \frac{t-t_j}{t_i-t_j})</math> | ||
Linia 90: | Linia 90: | ||
Możliwość szybkiego wyznaczenia przecięcia powierzchni z prostą – efektywność stosowania w algorytmach związanych z metodą śledzenia promieni. | Możliwość szybkiego wyznaczenia przecięcia powierzchni z prostą – efektywność stosowania w algorytmach związanych z metodą śledzenia promieni. | ||
Możliwość szybkiego wyznaczenia z na podstawie x i y – przydatne w algorytmach eliminacji elementów zasłoniętych. | Możliwość szybkiego wyznaczenia <math>z</math> na podstawie <math>x</math> i <math>y</math> – przydatne w algorytmach eliminacji elementów zasłoniętych. | ||
|} | |} | ||
Linia 111: | Linia 111: | ||
|valign="top"|Krzywa Béziera zawdzięcza swą nazwę Pierre’owi Bézierowi, warto jednak pamiętać, | |valign="top"|Krzywa Béziera zawdzięcza swą nazwę Pierre’owi Bézierowi, warto jednak pamiętać, | ||
że rozwiązanie to miało dwóch niezależnych twórców. Drugim był P. de Casteljau. Jego nazwiskiem został opatrzony podstawowy algorytm wyznaczania punktu krzywej. | że rozwiązanie to miało dwóch niezależnych twórców. Drugim był P. de Casteljau. Jego nazwiskiem został opatrzony podstawowy algorytm wyznaczania punktu krzywej. | ||
Krzywa Béziera stopnia n jest definiowana przez n+1 punktów <math>P_0, P_1, P_2,…P_n</math> w bazie wielomianów Bernsteina. Jest to krzywa gładka, której kształt zależy od położenia punktów kontrolnych. Najczęściej stosowane są krzywe stopnia 3. | Krzywa Béziera stopnia <math>n</math> jest definiowana przez <math>n+1</math> punktów <math>P_0, P_1, P_2,…P_n</math> w bazie wielomianów Bernsteina. Jest to krzywa gładka, której kształt zależy od położenia punktów kontrolnych. Najczęściej stosowane są krzywe stopnia 3. | ||
Użytkownicy komputerów spotykają się z nią na co dzień w postaci fontów, których kształt jest projektowany właśnie z jej wykorzystaniem | Użytkownicy komputerów spotykają się z nią na co dzień w postaci fontów, których kształt jest projektowany właśnie z jej wykorzystaniem | ||
Linia 160: | Linia 160: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:GKIW_M6_Slajd_10.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:GKIW_M6_Slajd_10.png|thumb|500px]] | ||
|valign="top"|Krzywe wymierne Béziera opisane są w przestrzeni jednorodnej. Oznacza to, że analogicznie do przekształceń geometrycznych opisanych macierzowo w przestrzeni jednorodnej, krzywe płaskie będą opisane w | |valign="top"|Krzywe wymierne Béziera opisane są w przestrzeni jednorodnej. Oznacza to, że analogicznie do przekształceń geometrycznych opisanych macierzowo w przestrzeni jednorodnej, krzywe płaskie będą opisane w <math>R^3</math>, natomiast krzywe trójwymiarowe będą opisane w przestrzeni <math>R^4</math>. | ||
Krzywa taka ma następujące cechy: | Krzywa taka ma następujące cechy: | ||
Dana krzywa może mieć nieskończenie wiele reprezentacji we współrzędnych jednorodnych. Pomnożenie wszystkich wag przez tę samą stałą różną od zera nie zmienia krzywej. | Dana krzywa może mieć nieskończenie wiele reprezentacji we współrzędnych jednorodnych. Pomnożenie wszystkich wag przez tę samą stałą różną od zera nie zmienia krzywej. | ||
Linia 172: | Linia 172: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:GKIW_M6_Slajd_11.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:GKIW_M6_Slajd_11.png|thumb|500px]] | ||
|valign="top"|Krzywa B-sklejana jest definiowana jako kombinacja liniowa funkcji sklejanych <math>N_i^m(t)</math>o współczynnikach odpowiadających punktom kontrolnym (punktom de Boora). Funkcje sklejane są przedziałami stopnia m, co nie jest związane z liczbą punktów tak jak w przypadku krzywych Béziera. Oznacza to rzeczywiście uniezależnienie stopnia wielomianu opisującego krzywą (oczywiście przedziałami w tym przypadku) od liczby punktów kontrolnych. | |valign="top"|Krzywa B-sklejana jest definiowana jako kombinacja liniowa funkcji sklejanych <math>N_i^m(t)</math>o współczynnikach odpowiadających punktom kontrolnym (punktom de Boora). Funkcje sklejane są przedziałami stopnia <math>m</math>, co nie jest związane z liczbą punktów tak jak w przypadku krzywych Béziera. Oznacza to rzeczywiście uniezależnienie stopnia wielomianu opisującego krzywą (oczywiście przedziałami w tym przypadku) od liczby punktów kontrolnych. | ||
Zakłada się, że węzły | Zakłada się, że węzły <math>t_i</math> są uporządkowane niemalejąco tzn. <math>t_i \le t_{i+1}</math> co oznacza, że mogą istnieć równe węzły (wielokrotne). Przyjmuje się wtedy, że 0/0=0. Takie założenia generalnie definiują krzywą dla węzłów które nie musza być równoodległe. Jednocześnie możliwość dodania (wstawienie) węzła pomiędzy dwa już istniejące, lub zwielokrotnienia węzła daje dodatkowe możliwości wpływania na kształt krzywej. Czasami jednak rozpatruje się krzywe o węzłach równoodległych. | ||
Istnieje algorytm de Boora i Coxa wyznaczania punktów krzywej B-sklejanej (analogiczny do algorytmu de Casteljau krzywej Béziera). Jeśli wyznaczanych jest wiele punktów krzywej to tańszym rozwiązaniem będzie obliczenie współczynników postaci naturalnej wielomianu w kolejnych podprzedziałach i skorzystanie z algorytmu Hornera. | Istnieje algorytm de Boora i Coxa wyznaczania punktów krzywej B-sklejanej (analogiczny do algorytmu de Casteljau krzywej Béziera). Jeśli wyznaczanych jest wiele punktów krzywej to tańszym rozwiązaniem będzie obliczenie współczynników postaci naturalnej wielomianu w kolejnych podprzedziałach i skorzystanie z algorytmu Hornera. | ||
Linia 181: | Linia 181: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:GKIW_M6_Slajd_12.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:GKIW_M6_Slajd_12.png|thumb|500px]] | ||
|valign="top"|Pierwsza właściwość – zerowanie funkcji sklejanej poza przedziałem <math><t_i,t_{i+m+1}></math> jest bardzo istotna dla modelowania kształtu. Oznacza bowiem lokalność wpływu parametrów. Rozpatrzmy podprzedział <math><t_i,t_{i+m+1}></math> dla <math>t\in (t_i,t_{i+m+1})</math> niezerowe są tylko funkcje <math>N_i^m(t)</math> o indeksach <math>i=j-m,j-m+1,j-m+2, j</math> . W takim przedziale wartość <math>Q(t)</math> , a tym samym kształt krzywej, zależy tylko od punktów kontrolnych <math> | |valign="top"|Pierwsza właściwość – zerowanie funkcji sklejanej poza przedziałem <math><t_i,t_{i+m+1}></math> jest bardzo istotna dla modelowania kształtu. Oznacza bowiem lokalność wpływu parametrów. Rozpatrzmy podprzedział <math><t_i,t_{i+m+1}></math> dla <math>t\in (t_i,t_{i+m+1})</math> niezerowe są tylko funkcje <math>N_i^m(t)</math> o indeksach <math>i=j-m, j-m+1, j-m+2, j</math> . W takim przedziale wartość <math>Q(t)</math> , a tym samym kształt krzywej, zależy tylko od punktów kontrolnych <math>P_{j-m}, P_{j-m+1}, P_{j-m+2},…P_j</math> . Z drugiej strony punkt kontrolny <math>P_i</math> wpływa jedynie na fragment krzywej odpowiadający <math>t\in <t_i, t_{i+m+1}></math> . | ||
Indeks j zmienia się od 0 do m , natomiast i od 0 do n . Cały zakres takiej krzywej definiują więc węzły: <math>t_0 | Indeks <math>j</math> zmienia się od 0 do <math>m</math> , natomiast <math>i</math> od 0 do <math>n</math> . Cały zakres takiej krzywej definiują więc węzły: <math>t_0 \le t_1 \le t_2 \le ... \le t_n_+_m_+_1</math> . Ale danych jest <math>n+1</math> punktów kontrolnych (de Boora). Punkty <math>P_0, P_1, P_2,…P_m</math> definiują krzywą dla <math>t\in <t_m,t_{m+1}></math> , natomiast punkty <math>P_{n-m}, P_{n-m+1}, P_{n-m+2},…P_n</math> definiują krzywą dla <math>t\in <t_n,t_{n+1}></math> . Węzły <math>t_0,t_1,t_2,\ldots,t_n</math> oraz <math>t_{n+1},t_{n+2},\ldots,t_{n+m+1}</math> nazywane są węzłami brzegowymi. Jeśli krzywa jest otwarta, to znaczy <math>Q(t_m)\ne Q(t_{n+1})</math> , i <math>t_0=t_1=t_2=...=t_m</math> oraz <math>t_{n+1}=t_{n+2}=...=t_{n+m+1}</math> to krzywa przechodzi przez końcowe punkty kontrolne, czyli <math>Q(t_m)=P_0</math> oraz <math>Q(t_{n+1})=P_n</math> . Podobnie jak było w przypadku krzywych Béziera, styczne do krzywej w punktach końcowych mają kierunek końcowych odcinków łamanej kontrolnej. Dla krzywej zamkniętej przyjmuje się, że punkty de Boora i węzły kontrolne są cykliczne <math>(P_n=P_0)</math>. | ||
|} | |} | ||
Linia 239: | Linia 239: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:GKIW_M6_Slajd_19.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:GKIW_M6_Slajd_19.png|thumb|500px]] | ||
|valign="top"|Konstruktywna geometria brył (ang. constructive solid geometry – CSG) jest metodą reprezentacji obiektów polegająca na definicji obiektu jako wyniku regularyzowanych operacji boolowskich. Obiekt jest zapisywany (pamiętany) jako drzewo o odpowiedniej budowie ( z określonymi operacjami w węzłach i prymitywami w liściach | |valign="top"|Konstruktywna geometria brył (ang. constructive solid geometry – CSG) jest metodą reprezentacji obiektów polegająca na definicji obiektu jako wyniku regularyzowanych operacji boolowskich. Obiekt jest zapisywany (pamiętany) jako drzewo o odpowiedniej budowie ( z określonymi operacjami w węzłach i prymitywami w liściach). To znaczy metoda ta nie podaje opisu gotowego obiektu, podaje natomiast "przepis" jak go stworzyć. | ||
|} | |} | ||
---- | ---- | ||
Linia 257: | Linia 257: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|width="500px" valign="top"|[[Grafika:GKIW_M6_Slajd_22.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:GKIW_M6_Slajd_22.png|thumb|500px]] | ||
|valign="top"|Konstruktywna geometria brył jest techniką, w której poważnym problemem jest definicja brzegu i wyznaczenie go po wykonaniu operacji boolowskich. Konieczność stosowania operacji regularyzowanych pokazuje rysunek. Jeśli wykonamy iloczyn lub różnicę brył A i B, to mogą pojawić się obszary dla których nie będzie zdefiniowany brzeg, ale również obszary dla których brzeg będzie określony niejednoznacznie. Zastosowanie regularyzacji zbioru (regularyzowanych operatorów boolowskich) zapewnia poprawność konstrukcji. | |valign="top"|Konstruktywna geometria brył jest techniką, w której poważnym problemem jest definicja brzegu i wyznaczenie go po wykonaniu operacji boolowskich. Konieczność stosowania operacji regularyzowanych pokazuje rysunek. Jeśli wykonamy iloczyn lub różnicę brył '''''A''''' i '''''B''''', to mogą pojawić się obszary dla których nie będzie zdefiniowany brzeg, ale również obszary dla których brzeg będzie określony niejednoznacznie. Zastosowanie regularyzacji zbioru (regularyzowanych operatorów boolowskich) zapewnia poprawność konstrukcji. | ||
|} | |} | ||
---- | ---- | ||
Linia 264: | Linia 264: | ||
|width="500px" valign="top"|[[Grafika:GKIW_M6_Slajd_23.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:GKIW_M6_Slajd_23.png|thumb|500px]] | ||
|valign="top"|Reprezentacja brzegowa (ang. b-rep – boundary representation) opisuje obiekt za pośrednictwem opisu jego brzegu – powierzchni ograniczającej obiekt. Możemy tu mieć do czynienia z modelem wielościennym (ang. polygonal representation) lub powierzchniowym, w którym kształt brzegu obiektu jest opisany parametrycznie. | |valign="top"|Reprezentacja brzegowa (ang. b-rep – boundary representation) opisuje obiekt za pośrednictwem opisu jego brzegu – powierzchni ograniczającej obiekt. Możemy tu mieć do czynienia z modelem wielościennym (ang. polygonal representation) lub powierzchniowym, w którym kształt brzegu obiektu jest opisany parametrycznie. | ||
Dla modelu wielościennego istotnym problemem jest organizacja struktury danych zapamiętującej obiekt. Realizowane jest to w postaci list lub tablic ścian, krawędzi i wierzchołków. Pamiętanie powiązań między elementami obiektów prowadzi do struktur redundantnych. Wiąże się to oczywiście ze wzrostem kosztu pamięciowego. Czasami celowo wprowadzane są struktury redundantne w celu przyspieszenia wyszukania elementów. Takimi strukturami są na przykład DCEL (double connected edg list) i struktura krawędziowa Baumgarta. Są to struktury, w których deskryptory krawędzi zawierają wskazania na sąsiednie krawędzie węzły i ściany. | Dla modelu wielościennego istotnym problemem jest organizacja struktury danych zapamiętującej obiekt. Realizowane jest to w postaci list lub tablic ścian, krawędzi i wierzchołków. Pamiętanie powiązań między elementami obiektów prowadzi do struktur redundantnych. Wiąże się to oczywiście ze wzrostem kosztu pamięciowego. Czasami celowo wprowadzane są struktury redundantne w celu przyspieszenia wyszukania elementów. Takimi strukturami są na przykład DCEL (double connected edg list) i struktura krawędziowa Baumgarta. Są to struktury, w których deskryptory krawędzi zawierają wskazania na sąsiednie krawędzie, węzły i ściany. | ||
|} | |} | ||
Linia 302: | Linia 302: | ||
|valign="top"|Podsumowując zaprezentowane sposoby reprezentacji obiektów można porównać ich podstawowe właściwości. | |valign="top"|Podsumowując zaprezentowane sposoby reprezentacji obiektów można porównać ich podstawowe właściwości. | ||
Dokładność. | '''Dokładność'''. | ||
Jeśli na scenie znajdują się obiekty wielościenne to reprezentacje wielościenne mogą dać dokładny opis obiektu. W pozostałych przypadkach tylko reprezentacja powierzchniowa z opisem kształtu za pomocą powierzchni Béziera, B-sklejanych, lub funkcji wymiernych może dać dokładny opis. Z reguły mamy do czynienia z pewną aproksymacją zależną np. od rozdzielczości siatki wokseli. | Jeśli na scenie znajdują się obiekty wielościenne to reprezentacje wielościenne mogą dać dokładny opis obiektu. W pozostałych przypadkach tylko reprezentacja powierzchniowa z opisem kształtu za pomocą powierzchni Béziera, B-sklejanych, lub funkcji wymiernych może dać dokładny opis. Z reguły mamy do czynienia z pewną aproksymacją zależną np. od rozdzielczości siatki wokseli. | ||
Dziedzina (zakres stosowania). | '''Dziedzina (zakres stosowania)'''. | ||
Podział przestrzeni może być stosowany do dowolnych obiektów, przy czym zawsze będzie istniał problem aproksymacji zależny od siatki wokselowej. Pozostałe metody reprezentacji mogą być stosowane do określonej klasy obiektów. Na przykład w konstrukcyjnej geometrii brył klasa reprezentowanych obiektów bardzo silnie zależy od zastosowanego zestawu prymitywów. | Podział przestrzeni może być stosowany do dowolnych obiektów, przy czym zawsze będzie istniał problem aproksymacji zależny od siatki wokselowej. Pozostałe metody reprezentacji mogą być stosowane do określonej klasy obiektów. Na przykład w konstrukcyjnej geometrii brył klasa reprezentowanych obiektów bardzo silnie zależy od zastosowanego zestawu prymitywów. | ||
Jednoznaczność/unikatowość. | '''Jednoznaczność/unikatowość'''. | ||
W zasadzie tylko podział przestrzeni za pomocą drzewa ósemkowego i reprezentacja wokselowa zapewniają unikatowośc reprezentacji w tym sensie, że istnieje tylko jeden zestaw wokseli reprezentujący dany obiekt. W pozostałych systemach modelowania istnieje wiele możliwości opisu tego samego obiektu. Szczególnym przypadkiem jest konstruktywna geometria brył gdzie dany obiekt można uzyskać nie tylko korzystając z różnych drzew, ale także z różnych zestawów prymitywów. | W zasadzie tylko podział przestrzeni za pomocą drzewa ósemkowego i reprezentacja wokselowa zapewniają unikatowośc reprezentacji w tym sensie, że istnieje tylko jeden zestaw wokseli reprezentujący dany obiekt. W pozostałych systemach modelowania istnieje wiele możliwości opisu tego samego obiektu. Szczególnym przypadkiem jest konstruktywna geometria brył gdzie dany obiekt można uzyskać nie tylko korzystając z różnych drzew, ale także z różnych zestawów prymitywów. | ||
Poprawność. | '''Poprawność'''. | ||
Podział przestrzeni jest zawsze poprawny – zawsze uzyskamy poprawny fragment przestrzeni. Pytanie oczywiście czy jest to ten fragment o który chodziło konstruktorowi. W pozostałych przypadkach wymagane jest sprawdzenie czy wynik definiowania/operacji jest poprawnym obiektem w danej klasie. Najtrudniejsze do sprawdzenia są opisy reprezentacji powierzchniowej. | Podział przestrzeni jest zawsze poprawny – zawsze uzyskamy poprawny fragment przestrzeni. Pytanie oczywiście czy jest to ten fragment o który chodziło konstruktorowi. W pozostałych przypadkach wymagane jest sprawdzenie czy wynik definiowania/operacji jest poprawnym obiektem w danej klasie. Najtrudniejsze do sprawdzenia są opisy reprezentacji powierzchniowej. | ||
Efektywność. | '''Efektywność'''. | ||
Najprostsze w reprezentacji są metody wokselowe, gdyż pozwalają na szybkie manipulowanie takimi obiektami. Również konstruktywna geometria brył daje prosty nieprzetworzony (wymagający przetworzenia w trakcie np. rysowania) mechanizm, pozwalający dodatkowo na szybką modyfikacje obiektów. | Najprostsze w reprezentacji są metody wokselowe, gdyż pozwalają na szybkie manipulowanie takimi obiektami. Również konstruktywna geometria brył daje prosty nieprzetworzony (wymagający przetworzenia w trakcie np. rysowania) mechanizm, pozwalający dodatkowo na szybką modyfikacje obiektów. | ||
Linia 324: | Linia 324: | ||
|width="500px" valign="top"|[[Grafika:GKIW_M6_Slajd_28.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:GKIW_M6_Slajd_28.png|thumb|500px]] | ||
|valign="top"|Wiele obiektów naturalnych (rośliny, formy skalne, linia brzegowa, zbocza gór itp.) a także sztucznych (np. polimery) ma cechę samopodobieństwa. Obrazy tych obiektów są podobne bez względu na skalę w jakiej, są oglądane. | |valign="top"|Wiele obiektów naturalnych (rośliny, formy skalne, linia brzegowa, zbocza gór itp.) a także sztucznych (np. polimery) ma cechę samopodobieństwa. Obrazy tych obiektów są podobne bez względu na skalę w jakiej, są oglądane. | ||
Często klasyfikuje się to pojęcie | |||
Często klasyfikuje się to pojęcie jako: | |||
Samopodobieństwo dokładne – mówimy o nim wtedy, kiedy występuje wierna kopia powiększonego lub pomniejszonego fragmentu. Taką cechę mają fraktale IFS. | Samopodobieństwo dokładne – mówimy o nim wtedy, kiedy występuje wierna kopia powiększonego lub pomniejszonego fragmentu. Taką cechę mają fraktale IFS. | ||
Quasi- samopodobieństwo – gdy występuje przybliżona kopia powiększonego lub pomniejszonego fragmentu. Charakterystyczne dla wielu fraktali definiowanych pewną zależnością rekurencyjną definiującą położenie punktów w przestrzeni. | |||
Quasi-samopodobieństwo – gdy występuje przybliżona kopia powiększonego lub pomniejszonego fragmentu. Charakterystyczne dla wielu fraktali definiowanych pewną zależnością rekurencyjną definiującą położenie punktów w przestrzeni. | |||
Samopodobieństwo statystyczne – tę cechę mają fraktale losowe. | Samopodobieństwo statystyczne – tę cechę mają fraktale losowe. | ||
Linia 337: | Linia 341: | ||
|width="500px" valign="top"|[[Grafika:GKIW_M6_Slajd_29.png|thumb|500px]] | |width="500px" valign="top"|[[Grafika:GKIW_M6_Slajd_29.png|thumb|500px]] | ||
|valign="top"|Twórcą geometrii fraktalnej i samego pojęcia fraktal jest B.Mandelbrot - francuski matematyk polskiego pochodzenia. Przykładem najprostszym iteracyjnie generowanego fraktala jest tal zwana śnieżynka Kocha zaproponowana przez H. von Kocha w 1904 roku. W każdym kroku iteracji każdy odcinek jest dzielony na trzy części (segmenty) po czym w miejsce jednego segmentu środkowego są wstawiane dwa segmenty tworząc z podstawą trójkąt równoboczny. Przy liczbie iteracji dążącej do nieskończoności otrzymuje się figurę, której każdy fragment jest zbudowany dokładnie na tej samej zasadzie (samopodobieństwo) i jednocześnie tak uzyskana krzywa ma nieskończoną długość oraz nie ma stycznej w żadnym punkcie. | |valign="top"|Twórcą geometrii fraktalnej i samego pojęcia fraktal jest B.Mandelbrot - francuski matematyk polskiego pochodzenia. Przykładem najprostszym iteracyjnie generowanego fraktala jest tal zwana śnieżynka Kocha zaproponowana przez H. von Kocha w 1904 roku. W każdym kroku iteracji każdy odcinek jest dzielony na trzy części (segmenty) po czym w miejsce jednego segmentu środkowego są wstawiane dwa segmenty tworząc z podstawą trójkąt równoboczny. Przy liczbie iteracji dążącej do nieskończoności otrzymuje się figurę, której każdy fragment jest zbudowany dokładnie na tej samej zasadzie (samopodobieństwo) i jednocześnie tak uzyskana krzywa ma nieskończoną długość oraz nie ma stycznej w żadnym punkcie. | ||
Problemem pozostaje wymiar takiej krzywej. Dla fraktali określa się wymiar Hausdorffa. F.Hausdorf – matematyk niemiecki zaproponował pojęcie wymiaru jako miarę wzrostu liczby kul (lub kół na płaszczyźnie) o promieniu | Problemem pozostaje wymiar takiej krzywej. Dla fraktali określa się wymiar Hausdorffa. F.Hausdorf – matematyk niemiecki zaproponował pojęcie wymiaru jako miarę wzrostu liczby kul (lub kół na płaszczyźnie) o promieniu <math>\epsilon</math> potrzebnych do pokrycia danego zbioru przy <math>\epsilon</math> dążącym do zera. Wymiar Hausdorffa nigdy nie jest mniejszy niż wymiar topologiczny danego zbioru. Dla fraktali jest liczbą ułamkową. Sniezynka Kocha ma wymiar d=log4/log3=1,2618… | ||
Fraktale stosuje się w grafice komputerowej do modelowania kształtu obiektów naturalnych wykazujących samopodobieństwo. Przykładem może być modelowanie krajobrazu. Fourier, Fussel i Carpenter zaproponowali zastosowanie iteracyjnego podziału do generowania fraktalnej góry. Jeśli podstawę góry będziemy dzielić systematycznie na pół, to po odpowiedniej liczbie iteracji uzyskamy punkty o zadanej dokładności. Wysokość dla każdego punktu podziału określa się na podstawie wysokości punktów poprzedniego kroku iteracji oraz pewnej funkcji zaburzenia. W zależności od przyjętej funkcji zaburzenia można w ten sposób otrzymać odpowiedni charakter zmian wysokości (łagodne pagórki lub ostre szczyty). | Fraktale stosuje się w grafice komputerowej do modelowania kształtu obiektów naturalnych wykazujących samopodobieństwo. Przykładem może być modelowanie krajobrazu. Fourier, Fussel i Carpenter zaproponowali zastosowanie iteracyjnego podziału do generowania fraktalnej góry. Jeśli podstawę góry będziemy dzielić systematycznie na pół, to po odpowiedniej liczbie iteracji uzyskamy punkty o zadanej dokładności. Wysokość dla każdego punktu podziału określa się na podstawie wysokości punktów poprzedniego kroku iteracji oraz pewnej funkcji zaburzenia. W zależności od przyjętej funkcji zaburzenia można w ten sposób otrzymać odpowiedni charakter zmian wysokości (łagodne pagórki lub ostre szczyty). | ||
Linia 351: | Linia 355: | ||
Metryka Hausdorffa określa odległości między zbiorami. | Metryka Hausdorffa określa odległości między zbiorami. | ||
Jeśli rozpatrzymy dwa zbiory A i B, to odległością d( | Jeśli rozpatrzymy dwa zbiory A i B, to odległością d(A,B) punktu a ze zbioru A od zbioru B jest najmniejsza odległość spośród odległości tego punktu od wszystkich punktów zbioru B. Odległością d(A,B) zbioru A od zbioru B jest to największa odległośc spośród odległości punktu zbioru A od zbioru B. | ||
Metryka Hausdorfa h(A,B) jest określona wyrażeniem: h(A,B)=max(d(A,B), d(B,A)) | Metryka Hausdorfa h(A,B) jest określona wyrażeniem: h(A,B)=max(d(A,B), d(B,A)) | ||
Linia 366: | Linia 370: | ||
Na przykład dla śnieżynki Kocha (dla pojedynczego boku startowego trójkąta !) | Na przykład dla śnieżynki Kocha (dla pojedynczego boku startowego trójkąta !) | ||
aksjomat: '''F''' | aksjomat: '''F''' | ||
reguła produkcji: '''F -> F-F++F-F''' | reguła produkcji: '''F -> F-F++F-F''' | ||
gdzie F oznacza ruch do przodu z rysowaniem, - oznacza obrót w lewo o zadany kąt <math>\alpha</math> , + oznacza obrót w prawo o zadany kąt <math>\alpha</math>. Dla śnieżynki Kocha <math>\alpha</math> wynosi 60 stopni. | gdzie '''F''' oznacza ruch do przodu z rysowaniem, '''-''' oznacza obrót w lewo o zadany kąt <math>\alpha</math> , '''+''' oznacza obrót w prawo o zadany kąt <math>\alpha</math>. Dla śnieżynki Kocha <math>\alpha</math> wynosi 60 stopni. | ||
Paprotka Barnsleya jest chyba najbardziej znanym przykładem wykorzystania gramatyk do modelowania roślin. | Paprotka Barnsleya jest chyba najbardziej znanym przykładem wykorzystania gramatyk do modelowania roślin. | ||
Linia 382: | Linia 388: | ||
L-system można niezależnie uzupełnić o dodatkowe zasady „obowiązujące” roślinę w trakcie wzrostu. Pozwala to symulować naturalne zjawiska takie jak tropizm (naturalne kierowanie się rośliny w kierunku słońca) i geotropizm (reakcja wzrostowa roślin na siłę ciężkości). | L-system można niezależnie uzupełnić o dodatkowe zasady „obowiązujące” roślinę w trakcie wzrostu. Pozwala to symulować naturalne zjawiska takie jak tropizm (naturalne kierowanie się rośliny w kierunku słońca) i geotropizm (reakcja wzrostowa roślin na siłę ciężkości). | ||
|} | |||
---- | |||
{| border="0" cellpadding="4" width="100%" | |||
|width="500px" valign="top"|[[Grafika:GKIW_M6_Slajd_3201v8.png|thumb|500px]] | |||
|valign="top"|Samopodobieństwo roślin jest wynikiem ich wzrostu – w procesie wzrostu rośliny łatwo pokazać powtarzalność odpowiednich struktur. Projektując opis wzrostu (gramatykę) dla danego organizmu należy uwzględnić naturalne cechy tego organizmu. Na przykład dla drzewa byłyby to przede wszystkim: liczba rozgałęzień, wysokość drzewa i długości przyrostów między rozgałęzieniami, grubości konarów i gałęzi, kąty jakie tworzą młode gałęzie ze starymi. Oczywiście wizualizacje powinny także uwzględniać kształty, barwy i faktury poszczególnych elementów – liści, kory, i to na różnych etapach wzrostu. Ponieważ proces symulacji wzrostu organizmu jest dość skomplikowany można wykorzystać zarówno zdjęcia jak i reguły biologiczne, a także porównania uzyskanych efektów z obiektami rzeczywistymi. | |||
Warto zwrócić uwagę na sposób realizacji wzrostu. Naturalny wzrost rzeczywistych roślin jest procesem ciągłym; płynnym. Natomiast symulacja z wykorzystaniem gramatyk jest procesem „skokowym” – realizowane są określone stany odpowiadające kolejnym iteracjom. Prezentowane rysunki pokazują stany wzrostu drzewa w określonych iteracjach. Liczby pod drzewami pokazują liczbę użytych iteracji. | |||
|} | |||
---- | |||
{| border="0" cellpadding="4" width="100%" | |||
|width="500px" valign="top"|[[Grafika:GKIW_M6_Slajd_3202v8.png|thumb|500px]] | |||
|valign="top"|Wizualizacja roślin jest procesem dość złożonym. Warto połączyć różne techniki dla uzyskania dobrych efektów. Prezentowany rysunek pokazuje wykorzystanie rysunku gałązki z liśćmi i faktury kory. Mechanizm opisu samopodobieństwa (budowania gramatyki wzrostu) jest odpowiedzialny za generowanie struktury drzewa. Mechanizm ten produkuje model obiektu akceptowany przez mechanizm wizualizacji z uwzględnieniem oświetlenia i teksturowania. Na tym etapie można maksymalnie wykorzystać jego możliwości. Zastosowanie śledzenia promieni (ray tracingu) pozwala dodatkowo uwzględnić, na przykład, mapy przezroczystości, co w połączeniu z gotowymi rysunkami gałązek z liśćmi daje możliwość prostej realizacji cienia. | |||
|} | |} |
Aktualna wersja na dzień 21:58, 15 wrz 2023
Wykład
![]() |
Literatura
![]() |