Řešení srážky pohybujících se hmotných objektů v rovině a prostoru

Algoritmy Fyzikální Řešení srážky pohybujících se hmotných objektů v rovině a prostoru

Jak tohle realisticky simulovat?


Ve fyzice se učíme mechaniku rázu. Tam je ale všechno krásně jednoduché: máme dvě tělesa, víme o nich, že se srazí a dosazením do vzorečku určíme výslednou rychlost. Jak prosté. My ale nepotřebujeme vyřešit srážku v 1D, ale ve 2D nebo 3D a hlavně musíme nejdřív nějak zjistit, jestli k ní vůbec dojde.

Popisovat budu postup pro 2D, ale jednoduchým přidáním třetí souřadnice se dá aplikovat i na 3D.

Tělesa jsou určena těmito parametry: polohou (x, y), rychlostí (vx, vy) a hmotností (m). Fyzika předpokládá hmotnost v kilogramech a rychlost v metrech za sekundu, ale s převodem jednotek si nemusíme dělat starosti - v jakých jednotkách dosadíme vstupní hodnoty, v takových nám vyjdou výsledky.

1) Dojde ke srážce?

Tělesa se srazí, pokud:
a) jsou dostatečně blízko
b) pohybují se směrem k sobě

Podmínka blízkosti je jednoduchá: pokud absolutní hodnoty rozdílů souřadnic v obou osách (|x1-x2| a |y1-y2|) jsou menší než nějaké námi zvolené minimum (které závisí zřejmě na rozměrech těles), jsou tělesa dostatečně blízko.
Používat na výpočet vzdálenosti Pythagorovu větu je celkem zbytečné. Získali bychom sice asi přesnější výsledky (tělesa by byla pomyslně ohraničena kružnicemi a ne čtverci), ale museli bychom počítat s odmocninou, což někdy může zdržovat. Navíc to nejde použít na podlouhlá tělesa.

Jestli se tělesa pohybují směrem k sobě, zjistíme tak, že porovnáme vzdálenost teď: |x1-x2| se vzdáleností v příští iteraci: |(x1+vx1)-(x2+vx2)| (předpokládám diskrétní pohyb těles, kdy v každé iteraci přičítáme k souřadnicím hodnoty rychlostí). Pokud se vzdálenost zmenšila, tělesa se pohybují k sobě a ve směru příslušné osy dojde ke srážce. To samé potom provedeme pro osu y.

2) Jak se tělesa budou po srážce pohybovat?

Srážku vyřešíme pro každou souřadnici samostatně. Zjistíme, jestli se v tom směru srazí (viz předchozí odstavec) a pak použijeme vzorečky:



k je tzv. koeficient restituce rázu, který udává, jak pružně se tělesa chovají. Může nabývat hodnot od 0 (dokonale plastický ráz, tělesa se po nárazu "slepí" a dál se pohybují společně) do 1 (dokonale pružný ráz, tělesa od sebe odskočí jako kulečníkové koule). Optimální hodnota pro běžné situace (srážka dvou aut a podobně) je cca 0.2, vyzkoušejte si dle potřeby.

v je společná rychlost, jakou by se obě tělesa pohybovala po dokonale plastickém rázu. Pokud vůbec nechcete počítat s pružným rázem, bude toto výsledek, jinak se v použije jen jako mezivýsledek do dalších dvou vzorců.

vi jsou výsledné rychlosti obou těles po srážce, vip jsou jejich původní rychlosti před srážkou a mi jsou jejich hmotnosti.

Tento výpočet zopakujeme odděleně pro osy x a y (a z, jestli pracujeme ve třech rozměrech). Je výhodné napsat si na to podprogram (proceduru).

Jediné hodnoty, které se srážkou mění, jsou rychlosti těles. Hmotnost zůstává konstantní, poloha (souřadnice) se mění v každém cyklu nezávisle na srážkách.

 


 

  Aktivity (1)

Článek pro vás napsal Mircosoft
Avatar
Autor je amatérský pascalista, assemblerista a bastlíř. Profesionálně psal nebo píše v HLASM, Rexxu, Cobolu, ST, LAD, FBD, PHP, SQL, JS, Basicu a pár dalších jazycích, které kupodivu stále existují a používají se :-).

Jak se ti líbí článek?
Celkem (2 hlasů) :
55555


 


Miniatura
Všechny články v sekci
Fyzikální algoritmy
Miniatura
Následující článek
Pohyb po přímce

 

 

Komentáře

Avatar
někdo
Neregistrovaný
Avatar
někdo:

Wow! Čekal jsem že i když jsem na zákl. škole, že po vysvětlení mi to snad dojde. Zdá se že jsem se mýlil :D

 
Odpovědět 21.11.2012 15:37
Avatar
Michal
Člen
Avatar
Michal:

Přesně tohle jsem potřeboval.:)

 
Odpovědět 26.1.2013 13:29
Avatar
Michal Doubek (HAPPY DAY):

ještě bych doplnil že pokud nastavíte koeficient restituce rázu (k) více než jedna, dostanete reakci gumových míčku které se od sebe odrazí.

Odpovědět 26.12.2013 18:10
Svoboda tvé pěsti končí na špičce mého nosu
Avatar
Mircosoft
Redaktor
Avatar
Odpovídá na Michal Doubek (HAPPY DAY)
Mircosoft:

Dokonalý odraz nastane při k=1. Víc už to nejde, to bychom porušovali zákon zachování energie ;-).

 
Odpovědět 26.12.2013 21:46
Avatar
Odpovídá na Mircosoft
Michal Doubek (HAPPY DAY):

pravda už sem na to přišel, musel jsem změnit hmotnost

Odpovědět 27.12.2013 16:32
Svoboda tvé pěsti končí na špičce mého nosu
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.