Rzut pionowy fizyka w grze

0

Ogolnie to szukam jakiegos wzoru ktory mi pomoze wyhamowac predkosc (V pilki) wiedzac ze jedyna sila ktora dziala na pilke to -mg bo V = V - mg; jest zle :C

no i powiedzmy ze mam sobie pilke ktora wyrzucam do gory (nadaje jej V [predkosc] rowne 10 m/s

z jakis tam rownan na energie calkowita wychodzi ze obiekt wzniesie sie na wysokosc okolo 5 metrow

problem w tym ze moja pilka nie pokazuje zadnego innego ruchu niz ten w dol

no i co ja robie w kodzie normalnie obliczam zmiane czasu pomiedzy klatkami pozniej musze jakos wyhamowac predkosc ja uzywam jak na razie grawitacji tylko nie tak jak powinienem z tego widze.
bo jak mam przyrownywac sile ciezkosci do predkosci V = V - m*g; ;0
pozniej zmieniam pozycje pilki kozystajac ze wzoru s = V * t; czyli mam swoje V mam pozycje pilki i mnoze teraz V przez moj czas ktory wyliczylem na poczatku i to jeszcze mnoze przez wetkor kierunku, powstaly wektor dodaje do ostatniej pozycji pilki

void MISSLLE_HEADER__TimeFrame(TMissle& obj)
{

obj.t = GetTickCount();

double elapsed_time = (float(obj.t) - float(obj.timestart) )/1000.0;


obj.timestart                  = obj.t;
							 float g = 9.810f;
//-----------------------TimeFrame

obj.V = obj.V - g*obj.m;


t3dpoint vec = vector_multiple(obj.direction,obj.V*elapsed_time);

	  obj.pos = vectors_add(vec,obj.pos);

	  obj.oldpos = obj.pos;
}

oto jak wyrzucam obiekt

POCISK.pos.x = 22;
POCISK.pos.y = 300;
POCISK.pos.z = 0;
POCISK.direction = triplesingletoT3DPOINT(0,1,0);
POCISK.m = 0.450;
POCISK.V = 0;
 POCISK.t = GetTickCount();
POCISK.V = 10.0;

user image

0

V = V - mg ... :/
Prędkość != siła... wracaj na lekcje fizyki.

Na początek rzucając piłkę do góry działasz na nią siłą F = Frzutu+ (-mg). Biorąc wzory na energię całkowitą układu:
Ekinetycznapoczątkowa(Ekp) = Epotencjalnakońcowa(Epk), gdzie Epotencjalnakońcowa jest energią w najwyższym punkcie.
Ekp = 0.5m(v^2)
Epk = mgh, gdzie h jest wysokością na jaką wzniosła się piłka

zatem po czasie t prędkość piłki musi być taka by spełnione było równanie:
Ek(t)+Ep(t) = Epk
Innymi słowy ilość energii kinetycznej i tym samym prędkości, wytraconej po czasie t musi być równa ilości energii potencjalnej zyskanej przez ciało na wysokości h(t) = ht, a ich suma musi być równa maksymalnej ilości energii potencjalnej. To wynika z zasady zachowania energii.

V wyrażą się przez Ek:

V(t) = sqrt(2Ek(t)/m)
Ek(t) = Epk - mgh(t)

Twój przypadek to mając V(t=0) wyznaczyć x(t)
V(t) = dh/dt
dh = sqrt(2Ek(t)/m)dt
dh = sqrt((2Epk - mgh(t))/m)dt
czyli wystarczy obliczyć na kartce całkę:
h = \int\sqrt{\frac{2Epk - mgh(t)}{m}},dt
i masz już gotową funkcję do przepisania do programu

0

Po energii liczyłem... i zamotałem... a najlepsze, ze spisywałem z własnych notatek z jakiegoś kolosa z przed wieków...

0

Coś zamotałeś za bardzo.

user image - początkowa prędkość w pionie.

Prędkość to całka po przyspieszeniu:
user image
Położenie to całka po prędkości:
user image

user image
gdzie :
E - pionowa energia rzutu ( Fz * t )
m - masa piłki
Fz - pionowa siła rzutu
t - czas działania siły Fz

0

Hmm, wybaczcie ignorancje, ale mnie na fizyce uczono, iz wzor na predkosc od czasu w rzucie pionowym to
v(t) = v0 - gt
czyli:
z(t) = z0 + v0t - (gt^2)/2
Na jaka cholere tu wrzucac sily i mase? g jest przeciez stale :?

0

Racja. Też przekombinowałem :p

poprawnie będzie:
user image
user image

Na jaka cholere tu wrzucac sily i mase? g jest przeciez stale :?
To już do policzenia v0

0

mi bardziej chodzi o nadawanie energi jakiemus obiektowi w byle jakim kierunku i przeciwstawienie sil oporu tylko nie wiem jak mam to wszystko ogarnac ;0

0
  1. Energia jest skalarem, nie ma kierunku.
  2. Jak pójdziesz do liceum/na studia, to ci powiedzą na fizyce. Jeśli nie możesz się doczekać, znajdź jakiś podręcznik do podstaw fizyki i sam się naucz.
    Same wzory nic tu ci nie pomogą, a ogólnie ten temat nie jest całkiem trywialny.
0

szkole to ja juz skonczylem. A i widze ze sie nie rozumiemy bojatutaj mam przypadek zmiany czasu od poprzedniej klatki do nastepnej :)

0

Komorkowy napisał:

zmiany czasu od poprzedniej klatki do nastepnej

Przecież to można zmierzyć... albo ustal sobie swoją własną jednostke czasu...

0
cyriel napisał(a)

ustal sobie swoją własną jednostke czasu...

Np. jednego Gołotę :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1