Riešenie zrážky pohybujúcich sa hmotných objektov v rovine a priestore
Ako toto realisticky simulovať?
Vo fyzike sa učíme mechaniku rázu. Tam je ale všetko krásne jednoduché:
máme dve telesá, vieme o nich, že sa zrazí a dosadením do vzorca určíme
výslednú rýchlosť. Ako prosté. My ale nepotrebujeme vyriešiť zrážku v
1D, ale v 2D alebo 3D a hlavne musíme najskôr nejako zistiť, či k nej vôbec
dôjde.
Popisovať budem postup pre 2D, ale jednoduchým pridaním tretej súradnice sa
dá aplikovať aj na 3D.
Telesá sú určené týmito parametrami: polohou (x, y), rýchlosťou (v
x, v y) a hmotnosťou (m). Fyzika predpokladá hmotnosť v
kilogramoch a rýchlosť v metroch za sekundu, ale s prevodom jednotiek si
nemusíme robiť starosti - v akých jednotkách dosadíme vstupné hodnoty, v
takých nám vyjdú výsledky.
1) Dôjde k zrážke?
Telesá sa zrazí, ak:
a) sú dostatočne blízko
b) pohybujú sa smerom k sebe
Podmienka jeho blízkosti je jednoduchá: ak absolútne hodnoty rozdielov
súradníc v oboch osiach (| x1-x2 | a | y1-y2 sú menšie ako nejaké nami
zvolenej minimum (ktoré závisia zrejme na rozmeroch telies), sú telesá
dostatočne blízko.
Používať na výpočet vzdialenosti Pytagorovu vetu je celkom zbytočné.
Získali by sme síce asi presnejšie výsledky (telesá by bola pomyselne
ohraničená kružnicami a nie štvorci), ale museli by sme počítať s
odmocninou, čo niekedy môže zdržovať. Navyše to nejde použiť na
podlhovastá telesa.
Ak sa telesá pohybujú smerom k sebe, zistíme tak, že porovnáme vzdialenosť
teraz: | x 1 -x 2 | so vzdialenosťou v budúcej
iteráciu: | (x 1 + v x1) - (x 2 + v
x2) | (Predpokladám diskrétne pohyb telies, kedy v každej
iterácii pričítame k súradniciam hodnoty rýchlostí). Ak sa vzdialenosť
zmenšila, telesá sa pohybujú k sebe a v smere príslušnej osi dôjde k
zrážke. To isté potom vykonáme pre os y.
2) Ako sa telesá budú po zrážke pohybovať?
Zrážku vyriešime pre každú súradnicu samostatne. Zistíme, či sa v tom
smere zrazí (pozri predchádzajúci odsek) a potom použijeme vzorčeky:
<center> </center>
k je tzv. koeficient reštitúcie rázu, ktorý udáva, ako pružne sa
telesa správajú. Môže nadobúdať hodnoty od 0 (dokonale plastický ráz,
telesá sa po náraze "slepí" a ďalej sa pohybujú spoločne) do 1 (dokonale
pružný ráz, telesá od seba odskočí ako biliardové gule). Optimálna
hodnota pre bežné situácie (zrážka dvoch áut a podobne) je cca 0.2,
vyskúšajte si podľa potreby.
v je spoločná rýchlosť, akou by sa obe telesá pohybovala po
dokonale plastickom rázu. Ak vôbec nechcete počítať s pružným razom, bude
toto výsledok, inak sa v použije len ako medzivýsledok do ďalších
dvoch vzorcov.
v i sú výsledné rýchlosti oboch telies po zrážke, v ip
sú ich pôvodné rýchlosti pred zrážkou a m i sú ich
hmotnosti.
Tento výpočet zopakujeme oddelene pre osi xay (az, či pracujeme v troch
rozmeroch). Je výhodné napísať si na to podprogram (procedúru).
Jediné hodnoty, ktoré sa zrážkou menia, sú rýchlosti telies. Hmotnosť
zostáva konštantný, poloha (súradnice) sa mení v každom cykle nezávisle
na zrážkach.