Zpět

Srážka 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:

  1. jsou dostatečně blízko
  2. 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é. V některých případech bychom sice získali přesnější výsledky (tělesa by byla pomyslně ohraničena kružnicemi a ne čtverci), ale buď bychom museli odmocňovat (což je zdlouhavé), nebo pracovat s hodně velkými čísly (integer2 = longint).

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 ideální 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.

Zpět

Reklamy: