мне нехватает формулы полета в зависимости от начальной скорости и угла также должно учитоваться сопротвления воздуха и ветра,желательно в tp7 или delphi
Какой формы снаряд? Вот http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D1%91%D1%82_%D1%81%D0%BD%D0%B0%D1%80%D1%8F%D0%B4%D0%B0 интересно описано физика, но без формул.
в worms играл?тут что-то типа снаряда базуки из worms world party
Вот, что у меня выйшло для материальной точки:
{$N+}
{$E+}
Uses Graph,crt;
function rad(q:real):real;
begin
rad:=q/360*2*pi;
end;
const
{ OPTIONS }
shag=0.01;
lgr = 0;
pgr = 3;
zcrtX=320;
zcrty=240;
mtrX=1;
mtrY=1;
colorG=15;
colorOXY=4;
OXYminX=-200;
OXYmaxX=200;
OXYminY=-320;
oxymaxY=320;
h=20; {начальная высота снаряда}
x0=-40; {начальное положения снаряда по осе Х}
v0=200; {начальная скорость снаряда}
L=40; {начальный угол к горизонту снаряда}
k=0.5; {коэффициент сопротивления воздуха}
g=9.8; {сила тяжести}
a=50; {сила ветра}
Var grDriver : Integer;
grMode : Integer;
x,y,t:real;{extended;}
i:integer;
Begin
grDriver:=Detect;
InitGraph(grDriver, grMode, '');
for i:=OXYminX to OXYmaxX do putpixel(zcrtX+i,zcrty,colorOXY);
for i:=OXYminY to OXYmaxY do putpixel(zcrtX,zcrty-i,colorOXY);
t:=lgr;
while y>=0 do
begin
if k<>-1 then
begin
y:=h+
(v0*sin(rad(l))*t)/
(k+1)-
(g*t*t*t)/
2*(k+1);
x:=x0+
(v0*cos(rad(l))*t)/
(k+1)-
(a*t*t*t)/
2*(k+1);
putpixel(zcrtx+trunc(x*mtrX),zcrty-trunc(y*mtrY),colorg)
delay(1);
end;
t:=t+shag;
end;
writeln(t:0:2);
readkey;
closegraph;
end.
спасибо
mamont001, не спеши, я сомневаюсь, что моя в моей проге правильо расчитывается положения снаряда в зависимости от времени. Надо еще подумать. Хотя костяк у тебя есть. И даже графики выходят правдоподобными, но формулы все-таки не правильны.
mamont001, загляни и вот сюда тоже:
http://forum.pascal.net.ru/index.php?showtopic=2992
, может оказаться полезным...