Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Houp
Založen: 28. 07. 2007 Příspěvky: 672
|
Zaslal: 23. srpen 2011, 13:00:06 Předmět: Pohybové rovnice - základní dotaz |
|
|
Doposud jsem úspěšně používal jednoduché vzorečky :
kód: |
v += a * dt;
pos += v * dt;
|
Bohužel pokud nechci pracovat s konstantním FPS, tak animace dopadne pokaždé trochu jinak. Střední školu mám již nějaký pátek za sebou, tak se chci zeptat, jestli je správnější řešení :
kód: |
pos += v * dt + 0,5 * a * dt^2;
v += a * dt;
|
? A nebo stále to nezaručuje, že pokaždé bude animace stejná? _________________
 |
|
Návrat nahoru |
|
 |
VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 23. srpen 2011, 13:12:17 Předmět: |
|
|
Nezaručuje. To druhé (mám teda ponětí), je jen stabilnější. Pokud budeš mít proměnný přírustek času (dt), tak ta animace prostě bude pokaždé vypadat trochu jinak...
Jedině s konstantním časem, by měl být i konstantní výpočet... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
 |
pcmaster

Založen: 28. 07. 2007 Příspěvky: 1827
|
Zaslal: 23. srpen 2011, 14:49:30 Předmět: |
|
|
Da sa samozrejme spravit aj konstantny krok. Zvol si maly, konstantny krok (napriklad 10 ms) a "akumuluj" dt kazdy frame. "Hrozi", ze budes integrovat i viackrat za frame (a niektore framy vobec!).
Priklad:
Naakumulovane vo frame 444: 0 ms.
Frame 444 trval 27 ms. Frame 445 trval 31 ms. Frame 446 trval 4 ms. Frame 447 trval 21 ms.
Frame 445: Integruj int(27)/10=2 krat. Accum = 7.
Frame 446: Integruj int(31+7)/10=3 krat. Accum = 8.
Frame 447: Integruj int(4+8)/10 = 1 krat. Accum = 2.
Frame 448: Integruj int(21+2)/10 = 2 krat. Accum = 3...
Takto ti animacia vzdy postupuje po 10 ms.
Kazdopadne, pouzitie lepsej integracnej schemy ako Euler je vzdy na mieste, ale implementacia moze byt relativne narocna (Runge-Kutta sa moze javit zlozity na pochopenie). Tato, co si uviedol, ak je to spravne (tj to co tam pricitas je druha derivacia), by ti stabilitu malo zlepsit. Ale furt to ma typicky velikansku, akumulujucu chybu. _________________ Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est. |
|
Návrat nahoru |
|
 |
|
|
Nemůžete odesílat nové téma do tohoto fóra Nemůžete odpovídat na témata v tomto fóru Nemůžete upravovat své příspěvky v tomto fóru Nemůžete mazat své příspěvky v tomto fóru Nemůžete hlasovat v tomto fóru
|
Powered by phpBB © 2001, 2005 phpBB Group
Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna