Hajítás távolságának számítása x és y irányú gyorsulással. Hogyan?
Sziasztok!
Egy játékot készítek, amiben van egy ágyú és egy hajó, amit el kell találni. Meg lehet adni, hány fokos szögben és milyen kezdősebességgel lövöm ki a golyót.
Addig megvagyok, hogy kiszámítom a pályáját, csak azt nem tudom, hol csapódik be (sxmax = ?).
Ha nem gyorsulna a test y vektora, akkor még ki tudom számolni, de mi van, ha gyorsul mondjuk -5 m/s2-tel?
Honlapom: [link]
A játék linkje: [link]
Tegyük fel, hogy az ágyú és a hajó azonos magasságban vannak, és nincs szél. Azt nem tudjuk, a hajó hogyan mozoghat.
A golyó pályájára a ferde hajításnak megfelelő egyenletek vonatkoznak: xg(t) = vg0^2*sin(2*α)/g
A hajó mozgása vagy xh(t) = vh0*t, vagy ha gyorsul: vh(t) = vh0*t+a*t^2/2. [itt xg(t) a golyó által megtett vízszintes út, vg0 a golyó kezdősebessége, α a kilövés szöge, g a nehézségi gyorsulás. vh(t) a hajó kezdősebessége, "a" a hajó esetleges gyorsulása, t pedig a kilövéstől a becsapódásig eltelt idő. Kell még a kilövés pillanatában a hajó és az ágyú távolsága, legyen ez H.
Ekkor H = xg(t) + xh(t), és itt a t az ismeretlen.
Köszönöm a választ, de nem egészen ezt kérdeztem...
A hajó egy helyben áll, csak a lövedék mozog. Csakhogy fúj a szél így a golyó sebessége az y tengelyen másodpercenként 5-tel fog csökkenni. Az a kérdés, mikro lesz az y koordinátája 0 m, vagy, hogy akkor mekkora lesz az x koordinátája. (Össze kell hasonlítanom a hajó x koordinátáját a becsapódáskor a lövedék x koordinátájával.)
Ha már tudnám, mikor csapódna be így a golyó (vízszintes és függőleges gyorsulással), abból könnyedén ki lehet számolni az x értéket.
Segítségeteket előre is köszönöm!
Normál esetben a golyó esését a gravitáció okozza, miközben halad előre. De lehet más lefelé irányuló erő is, például szél, vagy egyéb. Ekkor ugyanazokat a képleteket használjuk, ha a golyó függőleges irányú sebessége 5 m/sec^2 lassulással csökken, ez a gyorsulásérték a megfelelő előjellel hozzáadódik a g-hez.
Én azonban azt gondolom, ez nem reális eset. A szél nem fúj függőlegesen. Vagy oldalirányban, vagy a golyó irányában, vagy azzal szemben. az utóbbi két esetben növeli/csökkenti a becsapódási távolságot, az első eset komplikáltabb, ott a golyó esetleg a hajó mellett csapódik be.
Mindig az erőegyenleteket kell használni, mindig lehet a dolgokat komponensenként számolni (ugyanaz a képlet), és ha egy adat más formában megadva, átszámolni. A sebesség-változás gyorsulás, és a becsapódási idő minden komponens esetén azonos, ez köti össze a komponenseket (mert a valóságban egy térgörbét ír le a golyó, aminél irányonként külön számolunk, azonos t-t véve és külön kiszámolgatjuk az erőt, sebességet, vagy gyorsulást a vonatkozó képletekkel.
Bocs elírtam. :(
Az x tengelyén változik a sebesség vízszintesen és az y tengelyen is függőlegesen.
Egyszerűen felírod a mozgásegyenleteket:
a(t)=(w,0,g), ahol w a szél által okozott gyorsulás, g a gravitációs. Innen kétszeri t szerinti integrálással kapható az r(t) függvény:
r(t)=(r_{0,x}+v_{0,x}t+\frac{wt^2}{2}, r_{0,y}+v_{0,y}t, r_{0,z}+v_{0,z}t+\frac{gt^2}{2})
Ha megan az r(t=0) és adott a felszín, akkor egyszerűen egy metszéspontot kell keresni.
Végül is úgy oldottam meg, hogy megkeresi a program azt az időpillanatot, amikor az y érték kisebb lesz 0-nál és akkor ez kb az az időpillanat lesz, amikor becsapódik.
$t=0;
while (($ay / 2 ) * ($t * $t) + $vy * $t > -0.5) {
$t=$t+1;
}
if (($ay / 2 ) * ($t * $t) + $vy * $t<0) {
$t=$t-0.25;
}
elseif (($ay / 2 ) * ($t * $t) + $vy * $t>0) {
$t=$t+0.25;
}
$becsapodashelye=$vx * $t + ($ax / 2 ) * $t * $t;
Ha $becsapodashelye nagyobb mint 160, és kisebb, mint 180, akkor ez azt jelenti, hogy eltalálta a hajót a lövedék.
Ha valaki tud ennél precízebb megoldást, vagy képletet, akkor az kérem írja le. Eddigi 7.-es tudásomat latba vetve készítettem néhány kalkulátor programot is:
Egyenes vonalú mozgás kalkulátor: [link]
Hajítás kalkulátor: [link]
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!