Simulacija
gibanja krutog tijela slična je simulaciji gibanja čestica. Kod simulacije
čestica stanje čestice određeno je pozicijom
i brzinom .
Promjena stanja kroz vrijeme određena je promjenom pozicije
te promjenom brzine .
Novo stanje odrediti će se pomoću jednog od mnogih postupaka integriranja.
Na sličan način će se simulirati i kruta tijela osim što će stanje
tijela sadržavati više podataka i promjenu stanja će biti nešto
teže za odrediti.
Pozicija i orijentacija
Slika
11. Pozicija i orijentacija tijela
Pozicija
čestice u prostoru u vremenu
određena je vektorom .
Kako kruto tijelo zauzima u prostoru određeni volumen njegov prikaz
je nešto složeniji. Za poziciju tijela uzet će se jedna fiksna točka
u prostoru, pri tome se za tu točku odredi da se u koordinatnom sustavu
tijela nalazi na poziciji .
Kako bi se pojednostavile mnoge operacije za tu točku se uzima centar
mase tijela. Osim pozicije tijela, za razliku od čestica kruta tijela
se mogu i rotirati tako da je potrebno odrediti njihovu orijentaciju.
Orijentacija tijela se može predstaviti 3x3 matricom rotacije. Tako
da ukoliko je
pozicija točke u koordinatnom sustavu tijela pozicija točke u globalnim
koordinatama će biti rezultat rotiranja točke oko ishodišta i zatim
translatiranja točke:
 |
(4.1) |
gdje su:
3x3 matrica rotacije
pozicija tijela
Prilikom
iscrtavanja tijela koristit će se formula (4.1) za određivanje nove
pozicije svakog vrha tijela. Dakle kod određivanja nove pozicije i
orijentacije tijela prilikom simulacije nije potrebno računati i novu
poziciju svakog vrha tijela već će se to raditi samo prilikom iscrtavanja
budući da postoji grafička podrška za brzo računanje s matricama.
Linearna i kutna brzina
Slika
12. Linearna i kutna brzina tijela
Sljedeće
što je potrebno odrediti je promjena pozicije i orijentacije tijekom
vremena, dakle potrebno je odrediti
i .
Promjena pozicije je jednostavna, budući da je
pozicija centra mase u globalnim koordinatama
biti će jednako definiranoj linearnoj brzini tijela .
 |
(4.2) |
Kutna brzina
može se zapisati pomoću vektora .
Smjer
određuje os oko koje se tijelo vrti. Duljina vektora
određuje koliko brzo se tijelo vrti (kutna brzina). Za linearnu brzinu
odnos između i
jednak je .
Postavlja se pitanje koji je odnos između
i .
Kako stupci od
predstavljaju smjerove koordinatnih osi lokalnog sustava tijela, znači
da stupci od
opisuju brzinu promjene smjera koordinatnih osi. Promjena smjera vektora
određena je sa:
 |
(4.3) |
Znamo da
je smjer
osi lokalnog koordinatnog sustava tijela zapisan u prvom stupcu matrice .
Na isti način se odrede
i ostala dva stupca, te se dobije odnos između
i .
 |
(4.4) |
Kako bi se izračun
donekle pojednostavio vektorski produkt ćemo definirati na drugi način.
Vektorski produkt jednak
je:
 |
(4.5) |
Za određeni vektor
definira se matrica vektorskog produkta kao:
 |
(4.6) |
Sada se može
zapisati kao:
 |
(4.7) |
Prema pravilima množenja matrica dobijemo
da je promjena orijentacije jednaka:
 |
(4.8) |
Matrica vektorskog produkta
će se osim za računanje promjene orijentacije dosta često koristiti
kod računanja reakcije na sudar.
Brzina točke na tijelu
Slika
13. Brzina točke na tijelu
Prilikom
rješavanja sudara između tijela često će biti potrebno znati brzinu
određene točke na tijelu. Derivacijom izraza (4.1) i uvrštavanjem
izraza (4.8) te malo raspisivanja dobije se brzina točke na tijelu:
 |
(4.9) |
Orijentacija pomoću kvaterniona
Osim 3x3
matrica rotacije orijentacija tijela može se predstaviti i kvaternionima.
Kvaternioni su bolji za prikaz orijentacije zbog mnogih razloga poput
bolje interpolacije između dviju orijentacija. No za simulaciju krutih
tijela glavni razlog za korištenje kvaterniona je zbog greške zaokruživanja
koja se akumulira tijekom rotacije. Konstantnim ažuriranjem orijentacije
pomoću formule (4.8) numerička greška će se nakupiti unutar koeficijenata
matrice tako da matrica rotacije neće više predstavljati isključivo
matricu rotacije već će sadržavati i efekte smika i skaliranja. Greška
se može ispraviti ortonormiranjem matrice prilikom svakog ažuriranja
no bolji način je korištenje kvaterniona. Kako kvaternioni koriste
četiri parametra za prikaz tri stupnja slobode dok matrica koristi
devet parametra očito je da će greška biti mnogo manja. Greška kod
kvaterniona se može zanemariti, no ukoliko je potrebno greška se može
ispraviti normaliziranjem kvaterniona na jediničnu duljinu. Za integriranje
orijentacije će se koristiti kvaternioni dok će matrica rotacije još
uvijek biti potrebna za određene izračune poput računanja momenta
inercije tijela u globalnim koordinatama, također kutna brzina
će još uvijek biti prikazana pomoću vektora. Za derivaciju kvaterniona
se može pokazati da vrijedi [5]:
 |
(4.10) |
gdje je:
skraćeni zapis za kvaternion 
Za pretvorbu iz kvaterniona
u matricu rotacije vrijedi
[6]:
 |
(4.11) |
Masa tijela i centar mase
Za realnu
simulaciju krutih tijela potrebno je znati masu tijela i centar mase.
Masa tijela se jednostavno može ručno zadati za svako tijelo, također
centar mase se može intuitivno odrediti za jednostavna tijela poput
kugle ili kocke, međutim za kompleksna konkavna tijela centar će biti
potrebno izračunati.
Iako postoje metode koje računaju svojstva tijela direktno iz mreže trokuta poput [7] kako već imamo izračunato polje udaljenosti svojstva tijela se mogu izračunati na jednostavniji način slično kao u [8].
Masa tijela i
centar mase
mogu se izračunati pomoću zadane gustoće tijela .
Za ukupnu masa tijela vrijedi:
 |
(4.12) |
gdje je:
masa pojedine čestice tijela
Kako za tijelo
imamo izračunato polje udaljenosti masa tijela će se izračunati zbrajanjem
masa pojedinih ćelija unutar polja udaljenosti, s time da se zbrajaju
samo one ćelije koje se nalaze unutar tijela. Vrijedi:
 |
(4.13) |
gdje je:
duljina
stranice ćelije
Centar mase može izračunati prema sljedećoj
formuli:
 |
(4.14) |
gdje je:
udaljenost centra pojedine ćelije od ishodišta koordinatnog sustava
Moment inercije
Kao što
masa tijela utječe na translaciju tijela moment inercije (moment tromosti)
utječe na rotaciju tijela. Da bi ispravno odredili kutnu brzinu tijela
prilikom određivanja reakcije na sudar potrebno je odrediti moment
inercije tijela. Kao i centar mase moment inercije se ne može intuitivno
odrediti te ga je potrebno izračunati. Za inerciju materijalne točke
vrijedi:
 |
(4.15) |
gdje je:
udaljenost točke od centra rotacije
Na sličan način kao
što se masa tijela računa zbrajanjem mase ćelija koje se nalaze unutar
tijela tako će se i moment inercije izračunati zbrajanjem momenta
inercije pojedinih ćelija. Ćelije su oblika kocke pa je potrebno odrediti
moment inercije kocke. Za moment inercije kocke vrijedi:
 |
(4.16) |
gdje su:
masa kocke
duljina stranice kocke
Može se pokazati da
je moment inercije tijela oko zadane točke jednak zbroju momenta inercije
oko težišta i momenta inercije čestice oko zadane točke. Slijedi
da je moment inercije tijela
jednak:
 |
(4.17) |
Na prvi pogled pomislilo
bi se da je potrebno računati prethodnu sumu svaki put kod promjene
rotacije objekta. To bi bilo računski prezahtjevno tako da će se moment
inercije izračunati samo jedanput na početku programa dok tijelo još
nije rotirano a ispravan moment inercije će se prilikom svake promjene
orijentacije računati prema sljedećoj formuli [5]:
 |
(4.18) |
gdje su:
početni moment inercije tijela
3x3 matrica orijentacije
U programu će se zbog
brzine spremati inverzija momenta inercije pa se u tom slučaju moment
inercije može izračunati na sljedeći način [5]:
 |
(4.19) |
|