Witam,
napisalem sobie programik ktory sumuluje rzut ukosny nie jest jakis super extra ale musi taki byc :) , oto ort! zrodelko do pomocy ;-)
G = 9.81;
Vo,h,z,czas: integer;
alfa: Real;
Vo := StrToInt(Edit1.Text); //predkosc poczatkowa
alfa := StrToFloat(Edit2.Text); //kat nachylenia
Alfa:= alfa*PI/180;
Z:= Trunc((2*sqr(Vo)*sin(alfa)*cos(alfa))/G); //Zasięg rzutu
Label8.Caption := 'Zasięg rzutu:'+ IntToStr(Z)+'m';
H:=Trunc((sqr(Vo)*sqr(sin(alfa)))/G); ///Max osiagnieta wysokosc
Label9.Caption := 'Maxymalna wysokość:'+ IntToStr(H)+'m';
procedure TForm1.Rzut;
var x,y: integer;
begin
x:=0; y:=0;
Repeat
Wykres.Canvas.MoveTo(x,Wykres.Height-1+y);
x:=x+1; // x stale hmm...
y:=Round(x*tg(alfa)+(G/(2*sqr(Vo)*sqr(Cos(alfa))))*sqr(x)); //polozenie Y
Sleep(25);
Application.ProcessMessages;
Wykres.Canvas.LineTo(x,Wykres.Height+y);
Until (y>0)or (x >= wykres.width)or Stop = True;
end;
<font color="blue">
1. musze zrobic skalowanie (pomniejszyc wykres dla zbyt duzych wartosci) ale cos mi nie idzie ....
2. wykres za szybko spada przy duzym kacie np 89st. i 200km/h :-/
</span>
Czy moglby mi ktos doradzic co tu zmienic aby to zaczelo dzialac - odnosnie pkt. 1,2 ;-(