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 7 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 182: | Linia 182: | ||
|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>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> . | |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 <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, | 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 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
![]() |