Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Написание игр _ физика в игре

Автор: mamont001 4.11.2006 21:01

мне нехватает формулы полета в зависимости от начальной скорости и угла также должно учитоваться сопротвления воздуха и ветра,желательно в tp7 или delphi

Автор: Bokul 5.11.2006 0:06

Какой формы снаряд? Вот 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 интересно описано физика, но без формул.

Автор: mamont001 5.11.2006 1:02

в worms играл?тут что-то типа снаряда базуки из worms world party

Автор: Bokul 5.11.2006 2:37

Вот, что у меня выйшло для материальной точки:


{$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.


Описание констант смотри http://forum.pascal.net.ru/index.php?showtopic=2729&st=10#

Автор: mamont001 5.11.2006 3:02

спасибо

Автор: Bokul 5.11.2006 3:10

mamont001, не спеши, я сомневаюсь, что моя в моей проге правильо расчитывается положения снаряда в зависимости от времени. Надо еще подумать. Хотя костяк у тебя есть. И даже графики выходят правдоподобными, но формулы все-таки не правильны.

Автор: volvo 5.11.2006 3:51

mamont001, загляни и вот сюда тоже:

http://forum.pascal.net.ru/index.php?showtopic=2992
, может оказаться полезным...