1. Bry la sztywna Symulacja komputerowa ruchu bry ly sztywnej jest ważnym zagadnieniem podczas modelowania i weryfikacji różnych systemów fizycznych. Mówiac bry la sztywna, mamy na myśli bry l e, która nie ulega deformacji, co w szczególności oznacza, że jej objetość pozostaje niezmienna. Zak ladamy, że podczas symulacji ruchu bry l sztywnych, cia la nie przenikaja sie, a kiedy nastapi kontakt, bry ly albo sie od siebie odbijaja albo sklejaja sie. Podczas symulacji komputerowych stajemy przed wieloma problemami, a jednym z nich jest fakt, że symulowany świat rzeczywisty, z naszego punktu widzenia, sk lada sie z obiektów ciag lych, podczas gdy świat odtwarzany przy pomocy komputera jest dyskretny. Dla uproszczenia procesu obliczeń poczynimy nastepuj ace za lożenia: obiekty sa sztywne, obiekty sa jednorodne, czyli ich gestość jest wielkościa sta l a. 1.1. Uk lad wspó lrz ednych ' x 3 x 3 x(t) ' x 2 p 0 x 2 p(t) ' x 1 x 1 Rysunek 1. Globalny uk lad wspó lrz ednych (przestrzeń świata) zdefiniowany przez osie x 1, x 2, x 3. Lokalny uk lad bry ly zdefiniowany przez osie x 1, x 2, x 3. Punkt p 0 jest opisany w uk ladzie bry ly. Punkt p(t) to punkt p 0 w uk ladzie odniesienia świata. Po lożenie punktu w przestrzenie w chwili czasowej t może być opisane jako wektor x(t), reprezentujacy przemieszczenie punktu od środka uk ladu wspó lrz ednych. Bry la sztywna jest obiektem bardziej skomplikowanym, oprócz możliwości przemieszczania może sie również obracać. Aby zlokalizować bry l e sztywna w przestrzeni świata użyjemy wektora r(t), opisujacego przemieszczenie cia la. Dodatkowo musimy opisać obrót cia la, poprzez macierz obrotu ˆR(t) R 3 3. wektor x(t) oraz macierz obrotu ˆR(t) bedziemy nazywali zmiennymi przestrzennymi bry ly sztywnej. 1
W odróżnieniu od punktu, bry la sztywna posiada objetość (wype lnia pewien obszar w przestrzeni) oraz posiada określony kszta lt. Zdefiniujemy uk lad wspó lrz ednych zwiazany z bry l a sztywna z poczatkiem w środku masy bry ly (0, 0, 0). Przyjmijmy, że ˆR(t) opisuje obrót bry ly wzgledem środka masy, wtedy wektor r zdefiniowany w przestrzeni bry ly możemy opisać po obrocie w przestrzeni świata jako ˆR(t)r w chwili t. Podobnie jeżeli p 0 jest ustalonym punktem w przestrzeni bry ly, jego po lożenie w przestrzeni świata p(t) otrzymamy obracajac go i przemieszczajac o wektor x(t) p(t) = ˆR(t)p 0 + x(t) Ponieważ środek masy leży w środku uk ladu wspó lrz ednych zwiazanego z bry la, po- lożenie środka masy wzgledem przestrzeni świata jest zawsze opisane poprzez wektor x(t). Możemy powiedzieć, że x(t) jest po lożeniem środka masy w przestrzeni świata w chwili czasowej t. Rozważmy wektor w przestrzeni bry ly np. (1, 0, 0). W chwili czasowej t. Kierunek tego wektora w przestrzeni świata możemy opisać jako: Wypisujac sk ladowe macierzy ˆR: ˆR(t) = ˆR(t) 1 0 0 r 11 r 21 r 31 r 12 r 22 r 32 r 13 r 23 r 33 Orientacje osi uk ladu zwiazanego z bry l a (x 1, x 2, x 3) wzgledem przestrzeni świata, otrzymamy mnożac macierz obrotu ˆR(t) przez kolejne wersory uk ladu wspó lrz ednych: 1 r 11 ˆR(t) 0 = r 12 0 r 13 Analogicznie postepujemy dla: r 21 r 22 r 23 oraz Macierz ˆR jest macierza obrotu o rozmiarach 3 3, która pomnożona przez wspó lrzedne punktu, daje jego wspó lrz edne po obróceniu go wokó l wyróżnionej osi, czyli: r 31 r 32 r 33 v = R v (1) Macierze obrotów wokó l osi, x 1, x 2, x 3 o kat θ = θ 1, θ 2, θ 3 wygladaj a nastepuj aco: 1 0 0 ˆR 1 = 0 cos(θ 1 ) sin(θ 1 ) (2) 0 sin(θ 1 ) cos(θ 1 ) 2
ˆR 2 = ˆR 3 = cos(θ 2 ) 0 sin(θ 2 ) 0 1 0 sin(θ 2 ) 0 cos(θ 2 ) cos(θ 3 ) sin(θ 3 ) 0 sin(θ 3 ) cos(θ 3 ) 0 0 0 1 (3) (4) Tworzac z lożenia powyższych macierzy, można otrzymać macierz opisujac a różne skomplikowane obroty. Robi sie to mnożac macierze (ponieważ mnożenie macierzy nie jest przemienne wynika z tego, iż kolejność obrotów też nie jest przemienna), a wiec np. ˆR 1 ˆR 2 ˆR 2 ˆR 1. (5) Zadanie sprawdzić wzór (5). 1.2. Pr edkość Niech v(t) oznacza zmian e po lożenia dx punktu x(t) w czasie dt: v(t) = dx dt = ẋ (6) Wielkość v nazywamy liniowa predkości a cia la. Jeśli cia lo jest sztywne, to jest ona jednakowa dla wszystkich punktów cia la, a wiec jest to również predkość środka masy. Podczas ruchu, bry la sztywna może również obracać sie. Zak ladamy tu, że obrót nastepuje wzgledem osi przechodzacej przez środek masy. Oś można reprezentować jako wektor, gdzie d lugość tego wektora określa predkość ruchu obrotowego. Kierunek wektora definiuje oś wzgledem, której bry la obraca sie. Jest to tak zwana predkość katowa ω y ω(t) v(t) z z x Rysunek 2. v(t) predkość liniowa, ω(t) predkość katowa 3
Jeśli wektor r obraca sie ze sta l a predkości a katow a, wtedy jego pochodna wzgledem czasu przy za lożeniu niezmienności globalnych wspó lrz ednych jest nastepuj aca: dr dt = r dt + ω r gdy d lugość r nie zmienia sie, różniczka ulega uproszczeniu do: dr dt = ω r Wykorzystujac ten zwiazek, zależność miedzy macierza obrotu ˆR i predkości a katow a ω cia la wyraża sie wzorem: d ˆR dt = ˆΩ ˆR (7) gdzie Ω jest macierza skośna zbudowana ze sk ladowych wektora predkości katowej: 0 ω z ω y Ω = ω z 0 ω x (8) ω y ω x 0 W symulacji znamy poczatkow a postać macierzy obrotu, wiec latwo możemy otrzymać jej bieżac a postać, korzystajac z tego, że w każdym kroku obliczamy predkość katow a. 1.3. Przyspieszenie Teraz musimy odpowiedzieć na pytanie, jak zmienia sie predkości (liniowe oraz kato- we) w czasie. Zmiany predkości liniowej wywo luje dzia laj aca si la, a zmiany predkości obrotowej wywo luje moment si ly. Moment si ly (moment obrotowy) dzia laj acy na cia lo jest dany nastepuj acym równaniem: M = r F (9) Wektor momentu si ly zaczepiony jest w punkcie O, a jego kierunek jest prostopad ly do kierunku p laszczyzny wyznaczonej przez wektory F i r (rys. 3) gdzie M moment si ly, F si la, r rami e si ly. M F r O Rysunek 3. Moment si ly 4
F y M z z x Rysunek 4. Si la i moment si ly gdy dzia laj aca si la jest przy lożona do punktu r i (gdzie r i wspó lrz edne dowolnego punktu należacego do bry ly), moment si ly dzia laj acy na cia lo dany jest wzorem: M i = (r i x) F i (10) Gdy si la jest przy lożona do środka masy, moment si ly zanika (gdyż wtedy ramie si ly r = 0). Ca lkowita si la dzia laj aca na cia lo to: F = i F i (11) W prostokatnym globalnym uk ladzie wspó lrz ednych możemy wektor po lożenia, si ly i momentu si ly zapisać nastepuj aco: r = x 1 i + x 2 j + x 3 k F = F 1 i + F 2 j + F 3 k M = M 1 i + M 2 j + M 3 k Wektor r o wspó lrz ednych (x 1, x 2, x 3 ) opisuja w uk ladzie wspó lrz ednych po lożenie punktu przy lożenia si ly F wzgledem osi obrotu. Wspó lrz edne wektora momentu si ly M wyliczamy, korzystajac ze wzoru (9) M 1 = x 2 F 3 x 3 F 2 M 2 = x 3 F 1 x 1 F 3 M 3 = x 1 F 2 x 2 F 1 Za lóżmy, że oś obrotu przechodzi przez środek masy cia la. Moment pedu cia la jest suma liczonych wzgledem osi obrotu momentów pedu wszystkich czasteczek tego cia la. Można to wyrazić wzorem: L = i r i m i (ω r i ) (12) gdzie i numer czasteczki cia la, ω predkość katowa cia la wzgledem rozważanej osi, r i m i (ω r i ) moment pedu i-tej czasteczki, a jego wartość wynosi m i ωr 2 i. 5
Wynika to z tożsamości wektorowej A (B C) = B(A C) C(A B). Moment pedu i-tej czasteczki wynosi: r i m i (ω r i ) = m i [ω(r i r i ) r i (r i ω)] = m i ωr 2 i (13) gdyż iloczyn skalarny r i ω = 0 z powodu prostopad lości tych wektorów. L = ωr 2 dm (14) V Predkość katowa wszystkich czasteczek cia la sztywnego jest taka sama otrzymujemy: L = ω r 2 dm (15) gdzie V obj etość zajmowana przez cia lo 1. Moment bezw ladności to miara bezw ladności cia la w ruchu obrotowym. Im wiekszy moment bezw ladności tym trudniej rozkrecić dane cia lo lub zmniejszyć jego predkość obrotowa. Î = m i r 2 i (16) i Dla cia la sztywnego, które nie sk lada sie z oddzielonych mas punktowych, lecz ma ciag ly (jednorodny) rozk lad masy, wyrażenie określajace moment bezw ladności jest bardziej z lożone. Niech cia lo bedzie podzielone na nieskończenie ma le elementy o równych masach dm, oraz niech r oznacza odleg lość każdego takiego elementu od osi obrotu. W takim przypadku moment bezw ladności otrzymać można z wyrażenia: Î = r 2 dm (17) gdzie ca lkowanie jak zwykle odbywa si e po ca lej obj etości cia la. V 1.4. P ed Ped cia la jest zdefiniowany nastepuj aco: gdzie M ca lkowita masa cia la. P = Mv, M = m i (18) Ped punktu materialnego jest równy iloczynowi masy m i jego predkości v. Ped jest wielkościa wektorowa: kierunek i zwrot pedu jest zgodny z kierunkiem i zwrotem wektora predkości. Si la jest zmiana pedu cia la w czasie, czyli: Jest to II prawo dynamiki Newtona. 1 w dalszym tekście opuszczamy V przy ca lkach obj etościowych dp dt = F (19) 6
1.5. Tensor momentu bezw ladności Tensor momentu bezw ladności jest macierza o wymiarze 3 3. Wystepuje on w równaniu wiaż acym moment pedu z predkości a katow a dla danego cia la: L = Îω (20) gdzie Î tensor momentu bezw ladności. Macierz ta obliczana jest w przestrzeni bry ly i jest zdefiniowana: I 11 I 12 I 13 Î = I 21 I 22 I 23 (21) I 31 I 32 I 33 Aby zrozumieć, skad sie bierze ta macierz, powróćmy do równania ruchu obrotowego: L = (r m(ω r)) dm (22) gdzie ω predkość katowa obrotu cia la, r wektor po lożenia elementu masy dm wzgledem środka cieżkości, r m(ω r)dm wektor momentu pedu danego elementu masy. y r dm x x y z z Rysunek 5. Obliczanie momentu bezw ladności r = x 1 i + x 2 j + x 3 k ω = ω 1 i + ω 2 j + ω 3 k Rozpisujac podwójny iloczyn wektorowy na wspó lrz edne wektorów, otrzymujemy: L = = { [( ] x 2 2 + x3) 2 ω1 x 1 x 2 ω 2 x 1 x 3 ω 3 i + + [ x 2 x 1 ω 1 + ( ] x 2 3 + x1) 2 ω2 x 2 x 3 ω 3 j + + [ x 3 x 1 ω 1 x 3 x 2 ω 2 + ( ] x 2 1 + x2) 2 ω3 k}dm 7
Wprowadzimy nastepuj ace oznaczenia: I 11 = I 22 = (x 2 2 + x3) 2 dm (23) (x 2 3 + x1) 2 dm (x 2 I 33 = 1 + x2) 2 dm I 12 = I 21 = (x 1 x 2 )dm I 13 = I 31 = (x 1 x 3 )dm I 23 = I 32 = (x 2 x 3 )dm Wyrażenia te sa ca lkami objetościowymi. W przypadku gdy bry la ma prosta geometrie jak sześcian, sfera czy cylinder, wyrażenia te latwo wyliczyć. W przypadku skomplikowanych geometrii, potrzebne jest zastosowanie metod numerycznych. Po podstawieniu wyrażeń (23) do wzoru na moment p edu otrzymujemy: L = [I 11 ω 1 I 12 ω 2 I 13 ω 3 ] i + + [ I 21 ω 2 I 22 ω 2 I 23 ω 3 ] j + + [ I 31 ω 1 I 32 ω 2 I 33 ω 3 ] k 2. Zmiana stanu uk ladu implementacja komputerowa Stan Y (t), w jakim znajduje sie bry la sztywna w chwili t, można przedstawić w nastepuj acy sposób: x(t) Y (t) = ˆR(t) P (t) L(t) Znajac stan Y (t), możemy obliczyć inne potrzebne wielkości: Î 1 (t) = ˆR(t)Î 1 bryly ˆR(t) T gdzie Î 1 odwrotność momentu bezw ladności. d dt Y (t) = d dt v(t) = P (t) M ω(t) = Î 1 (t)l(t) x(t) ˆR(t) P (t) = L(t) 8 v(t) ω(t)r(t) F (t) M(t) (24)
Równanie (24), jest równaniem różniczkowym, które musimy rozwiazać w celu obliczenia po lożenia i orientacji bry ly sztywnej w różnych chwilach czasowych. Równanie bedziemy rozwiazywali numerycznie stosujac prosta metode Eulera. Ponieważ nie znamy dok ladnego rozwiazania równania różniczkowego. Nowy stan otrzymamy na podstawie stanu poprzedniego plus rozmiar kroku czasowego przemnożony przez pochodna z kroku poprzedniego. Y (t i+1 ) = Y (t i ) + h Y [Y (t i )] gdzie h wielkość kroku czasowego. Niestety metoda Eulera jest niewystarczajaca dla stabilnej symulacji (wprowadza zbyt duży b l ad obliczeniowy). Jedna z możliwości poprawienia rozwiazania jest zastosowanie lepszej metody numerycznej. Możemy zastosować metode Heuna zwana niekiedy ulepszona metoda Eulera. Y (t i+1 ) = Y (t) + h (Y [ ]) 2 Y ((t i ) + hy [Y (t i )] 3. Zastosowanie kwaternionów zamiast macierzy obrotu Kwaternion jednostkowy może zostać zastosowany do reprezentacji obrotu wokó l osi w przestrzeni trój-wymiarowej. Zaleta zastosowania kwaternionów jest to, że zawieraja taka sama ilość informacji co macierz obrotu, ale potrzeba tylko czterech parametrów do opisania tego obrotu. Macierz obrotu zawiera dziewieć elementów do opisania trzech punktów swobody. Kwaternion sk lada si e z dwóch elementów, gdzie jeden jest skalarem a drugi wektorem trzy-elementowym: q = [s, v] = [s, q x, q y, q z ] (25) gdzie v wektor q x i + q y j + q z k, a s skalar. Kwaterniony sa rozszerzeniem liczb zespolonych, Liczby zespolone zawieraja parametr i: i i = 1 W kwaternionach rozszerzono koncepcj e pierwiastka z 1 do trzech pierwiastków z 1, określanych jako i, j, k: i i = 1 j j = 1 k k = 1 Mnożenie par tych elementów zachowuje si e podobnie do liczenia iloczynu wektorowego typowych trzech osi trójwymiarowej przestrzeni: i j = j i = k j k = k j = i k i = i k = j 9
Tylko kwaterniony jednostkowe definiuja obroty, musi on spe lniać warunek: s 2 + q 2 x + q 2 y + q 2 z = 1 Przy obrocie o kat θ wokó l osi reprezentowanej przez jednostkowy wektor u (gdzie u = v ) kwaternion określaj acy v ten obrót może zostać zapisany w postaci: q = [cos(θ/2), sin(θ/2)u] u θ Rysunek 6. Kwaternion reprezentujacy obrót Na rysunku 6 zaprezentowano kwaternion obrotu dla dowolnego cia la sztywnego obracajacego sie wokó l osi wyznaczonej przez wektor u przechodzacej przez środek masy. Mnożenie dwóch kwaternionów jest zdefiniowane nastepuj aco: [s 1, v 1 ] [s 2, v 2 ] = [s 1 s 2 v 1 v 2, s 1 v 2 + s 2 v 1 + v 1 v 2 ] (26) Użycie kwaternionów w symulacji komputerowej do reprezentacji orientacji cia la sztywnego przypomina, użycie w tym celu macierzy obrotu. Najpierw tworzymy kwaternion opisujacy orientacje poczatkow a cia la w chwili t 0. Potem w każdym kolejnym kroku czasowym uaktualniamy orientacje cia la, korzystajac z wektora predkości katowej wyliczonego w danym kroku. Równanie różniczkowe l acz ace reprezentujacy orientacje kwaternion z wektorem predkości katowej bardzo przypomina analogiczne równanie dla macierzy obrotu (7) i ma postać: dq dt = 1 ωq (27) 2 Tutaj predkość katowa, przedstawiona jako kwaternion, ma postać [0, ω] i jest zapisana w zewnetrznym nieruchomym uk ladzie wspó lrz ednych. Jeżeli ω zostanie zapisane w lokalnym uk ladzie wspó lrz ednych zwiazanym z obracajacym sie cia lem (przestrzeni bry ly sztywnej), należy użyć równania: dq dt = 1 2 qω Z kwaternionu możemy skonstruować macierz obrotu: 1 2vy 2 2vz 2 2v x v y 2sv z 2v x v z 2sv y 2v x v y + 2sv z 1 2vx 2 2vz 2 2v y v z 2sv x 2v x v z 2sv y 2v y v z + 2sv x 1 2vx 2 2vy 2 10
Analogicznie do macierzy obrotu, kwaterniony moga być stosowane do obracania punktów lub wektorów. Jeżeli v jest wektorem przed obrotem, a v wektorem obróconym przez kwaternion q, zależność miedzy nimi wyraża sie wzorem: gdzie q jest kwaternionem sprz eżonym z kwaternionem q: v = qvq (28) q = s q x i + q y j + q z k (29) Stan uk ladu Y (t), możemy zapisać zastepuj ac macierz obrotu reprezentacja kwaternionowa: x(t) Y (t) = q P (t) L(t) czyli: v(t) d dt Y (t) = 1 [0, ω] 2 F(t) M(t) 4. Poduszkowiec przypomnijmy, że druga zasada dynamiki Newtona opisuje ruch cia la, i wyraża si e wzorem: F = ma (30) Jeżeli mamy do czynienia z cia lem sztywnym musimy pamietać, że dzia laj ace na nie si ly bed a powodowa ly nie tylko jego ruch postepowy, ale również obrotowy. Ruch obrotowy to taki ruch, w którym wszystkie punkty bry ly sztywnej poruszaja sie po okregach o środkach leżacych na jednej prostej zwanej osia obrotu. Np. ruch Ziemi wokó l w lasnej osi. Jest to ruch z lożony z ruchu postepowego środka masy danego cia la oraz ruchu obrotowego wzgledem pewnej osi. Środek masy cia la można uważać za punkt materialny. Do opisania ruchu obrotowego używa sie odmiennych pojeć od używanych do opisania ruchu postepowego. Druga zasada dynamiki jest podstawowym prawem ruchu obrotowego. r F = M = dl dt gdzie M jest momentem si ly wzgl edem obranego punktu odniesienia, a L kr etem (momentem p edu) wzgl edem tego samego punktu odniesienia. Jeżeli obrót odbywa sie wzgledem osi sta lej lub sztywnej wówczas druga zasada dynamiki dla ruchu obrotowego może być napisana w nastepuj acy sposób: M = I dω dt 11 (31) = Iε (32)
gdzie ε przyspieszenie katowe, ω predkość katowa, I moment bezw ladności. Środek cięŝkości x 2 Siła ciągu lewego silnik kierunkowego siła ciągu x 1 Siła ciągu prawego silnik kierunkowego Rysunek 7. Schematyczny model poduszkowca Podczas symulacji ruchu poduszkowca musimy w pierwszym kroku obliczyć wypadkowe si ly oraz momenty si l dzia laj ace na cia lo, uwzgledniaj ac również opór aerodynamiczny. Zacznijmy od policzenia si l i momentów si l generowanych przez silniki napedowe. oznaczmy F w jako wypadkowa si l e dzia laj ac a na poduszkowiec, oraz M w jako wypadkowy moment si ly dzia laj acy na poduszkowiec. Dodatkowo F c si la generowana przez silnik tylny znajdujacy sie na osi x 1, F l si la generowana przez lewy silnik znajdujacy sie z przodu z lewej strony poduszkowca, F p si la generowana przez prawy silnik. Znamy si l e ciagu generowana przez poszczególne silniki, możemy wiec zapisać: F w = F c + F l + F p (33) Oznaczmy po lożenie silników w uk ladzie zwiazanym z poduszkowcem jako: r c po lożenie silnika tylnego, r l po lożenie lewego silnika, r p po lożenie prawego silnika. Przypomnijmy, że gdyby si la przy lożona by l a do środka masy, moment si ly wynosi l by zero. Ponieważ w naszym przypadku silniki nie sa umieszczone w środku cieżkości, moment si ly policzymy jako iloczyn wektorowy dzia laj acej si ly i ramienia (czyli w naszym przypadku wektora opisujacego po lożenie danego silnika). M c = r c F c (34) oraz wypadkowy moment si ly: M l = r l F l (35) M p = r p F p (36) M w = M c + M l + M p (37) Si la wypadkowa dzia laj aca na cia lo zosta la policzona w lokalnym uk ladzie zwiazanym z cia lem, należy ja przetransformować do uk ladu wspó lrz ednych świata, dokonujac obrotu wektora si ly wypadkowej. 12
Po wyznaczeniu si l oraz momentów si l należy sca lkować równanie ruchu postepowego oraz obrotowego i wyznaczyć nowa predkość liniowa, katow a oraz po lożenie. Rozpoczynamy od wyznaczenia przyspieszenia liniowego: a = F w m nastepnie korzystajac z zależności dv dt = a wyznaczamy zmiane predkości dv = a dt i wyznaczamy predkość w kroku n + 1 jako: v n+1 = v n + dv Wyznaczamy w kolejnym kroku nowe po lożenie obiektu wyznaczajac zmiane pod lożenia korzystajac z zależności ds dt = v czyli zmiana po lożenia = v dt i znajac po lożenie w chwili n wynoszac a s n wyznaczamy nowe po lożenie s n+1 = s n + ds Kolejnym krokiem jest ca lkowanie równań ruchu obrotowego. Wyznaczamy przyspieszenie katowe ε, obrót odbywa sie wzgledem sta lej osi wiec druga zasada dynamiki dla ruchu obrotowego sprowadza sie do postaci: M = Iε gdzie M moment wypadkowy, I moment bezw ladności, ε przyspieszenie katowe. Czyli ε = MI 1, zmiana predkości katowej dω w czasie oznacza przyspieszenie ka- towe czyli ε = dω dt dω = ε dt Znajac zmiane predkości katowej możemy obliczyć nowa predkość katow a w chwili n + 1 jako ω n+1 = ω n + dω znajac nowa predkość katow a możemy wyznaczyć zmiane kata korzystajac z zależności, że zmiana kata w czasie oznacza predkość katow a czyli dθ dt = ω czyli dθ = ω dt znajac przyrost kata możemy wyznaczyć nowa orientacje cia la θ n+1 = θ n + dθ 13
5. Kolizje oraz si ly kontaktu Ważnym elementem podczas symulacji bry ly sztywnej jest sytuacja kontaktu dwóch bry l oraz ich kolizja. Aby można by lo wyznaczyć si ly jakie dzia laj a na bry ly w momencie kolizji, trzeba najpierw wykryć sytuacje wystapienia kolizji. Skupimy sie wy l acznie na bry lach bed acymi wielościanami wypuk lymi. W pierwszym kroku przyjrzyjmy sie wierzcho lkowi wielościanu (na rysunku (8) reprezentowanym przez punkt) kolidujacemu z p laszczyzna. t 0 t c t 0 + t Rysunek 8. Kolizja punkt - p laszczyzna Na rysunku 8 widać, że w chwili t 0 kolizja jeszcze nie nastapi la. Kiedy wykonamy jeden krok obliczeniowy (krok czasowy t) punkt znajduje sie poniżej p laszczyzny.kolizja powinna wystapić w chwili t c, która jest pomiedzy t 0 a t 0 + t. Ponieważ nie wiemy jak zachowa l sie punkt w czasie pomiedzy t 0 i t 0 + t nie jesteśmy w stanie wyznaczyć analitycznie czasu t c. Zazwyczaj w celu poradzenia sobie z tym problemem wykorzystujemy metode bisekcji. Sprawdzimy zachowanie punktu w chwili czasowej t 0 + 1 t. Jeśli i w tym 2 przypadku punkt znajdzie sie poniżej p laszczyzny sprawdzimy po lożenie w chwili czasowej t 0 + 1 t, jeśli jednak nie nast api 4 penetracja w chwili czasowej t 0 + 1 t 2 sprawdzimy po lożenie punktu w chwili czasowej t 0 + 3 t. Bedziemy 4 tak postepowali aż do momentu kiedy punkt nie znajdzie sie w pewnym przedziale tolerancji ɛ od p laszczyzny. t 0 ε ε t c t 0 + t Rysunek 9. Znalezione t c z tolerancja ɛ 14
Algorytm ten można przyspieszyć wyznaczajac prosta przechodzac a przez po lożenie punktu w chwili t 0 oraz t 0 + t, nastepnie wyznaczajac punkt przeciecia tej prostej z p laszczyzna. Warto zauważyć że w wiekszości przypadków wielościany bed a kolidowa ly z innymi wielościanami a nie tylko z p laszczyznami. 5.1. Algorytm Lin-Canny Niezmiernie szybki algorytm dzia laj acy na zasadzie wyszukiwania najbliższych elementów (ścian, krawedzi, wierzcho lków) pomiedzy para wielościanów wypuk lych. najlepiej pokazać zasade dzia lania algorytmu w przestrzeni dwu wymiarowej. Alogrytm ten bazuje na regionach Voronoi. Rozważmy wielokat przedstawiony na rysunku 10, wielokat ten ma osiem elementów: cztery wierzcho lki oraz cztery krawedzie. V(v 1 ) v 1 e 4 e 1 v 4 v 2 v 3 e 2 e 3 V(v 3 ) Rysunek 10. Wielokat i jego regiony Voronoi Dla każdego elementu F, zbiór punktów bliższych elementowi F niż jakiemukolwiek innemu elementowi jest nazywany regionem Voronoi i oznaczany V (F ). Konstrukcja regionó dla wielokata jest dość prosta. Z każdego wierzcho lka prowadzimy promienie wychodzace na zewnatrz prostopad le do krawedzi zawierajacej dany wierzcho lek. Promienie te tworza brzegi regionów Voronoi. Region Voronoi jest to nieskończony stożek leżacy pomiedzy dwoma promieniami wyprowadzonymi z tego samego wierzcho lka. Region Voronoi dla krawedzi jest to pó l nieskończony prostokat leżacy pomiedzy dwoma równoleg lymi promieniami wychodzacymi z wierzcho lków wchodzacych w sk lad krawedzi. Regiony Vornoi dziela przestrzeń na zewnatrz wielokata. Twierdzenie 1. Niech bed a dane dwa nieprzecinajace sie wielokaty A i B, niech a i b bed a najbliższymi punktami pomiedzy elementem F a wielokata A, natomiast F b wielokata B. Jeżeli a i b sa najbliższymi punktami pomiedzy A i B wtedy a V (F b ) 15
i b V (F a ) (dla uproszczenia pomijamy przypadki kiedy punkty leża na brzegach regionów) Dowód 1. Za lóżmy, że a / V (F b ). Wtedy aznajduje sie w jakimś innym regionie Vornoi np. V (F c ) i a jest bliższe F c niż jakiej kolwiek innego elementu B. Ponieważ b F b, czyli b / F c, tak wiec a i b nie moga być najbliższymi punktami. identycznie rozumujemy kiedy b / F a. Twierdzenie 2. Dane sa dwa wypuk l e nie przecinajace sie wielokaty A i B, niech a i b bed a najbliższymi punktami pomiedzy elementem F a wielokata A, natomiast F b wielokata B. Jeżeli a V (F b ) oraz b V (F a ), wtedy a oraz b sa najbliższymi punktami pomiedzy A i B A a b B Rysunek 11. Twierdzenie 2 mówi, że a i b sa najbiższymi punktami pomiedzy A i B b a B A Rysunek 12. a i b nie sa najbliższymi punktami Na rysunku 12 punkt b znajduje sie w regionie Voronoi F a, jednak a nie znajduje sie już w regionie Voronoi F b, a leży po z lej stronie promienia wychodzacego z b 16