Форум: "Игры";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];
ВнизPhyzics programming Найти похожие ветки
← →
clim (2003-07-30 01:19) [0]как лучше работать с таймером, когда координаты объекта изменяются по законам физики, зависящиx от времени
например
V = V0 + a*t
x = x0 + v0*t + g*t*t/2
(желательно привести какой-нибудь пример)
← →
Asteroid (2003-07-30 02:00) [1]dV = a*dt
dx = x0 + v0*dt + a*dt*dt/2
V = V + dV
x = x + dx,
где dt - время между двумя кадрами. Желательно измерять каждый кадр (раз на раз не приходится, даже с таймером).
← →
Думкин (2003-07-30 06:06) [2]Зависит от того что ты хочешь.
Создать абсолютно реальную систему - сложно. Но если вся кинематика дается в конечных формулах - как приведено(без решения сложных дифуров - Z.b. пошагово), то можно. В момент отрисовки - берешь текущее время и выводишь объекты в получившейся конфигурации.
>
> Asteroid © (30.07.03 02:00)
> dV = a*dt
> dx = x0 + v0*dt + a*dt*dt/2
> V = V + dV
> x = x + dx,
x0 = 0
Но тут это и не нужно, т.к. есть прямой метод вычисления и x и V.
← →
nobody (2003-07-30 10:13) [3]"Желательно измерять каждый кадр " -- как? (пример)
← →
хм (2003-07-30 14:37) [4]GetTickCount()
← →
Asteroid (2003-07-30 20:15) [5]> Думкин © (30.07.03 06:06)
Да, спасибо за замеченную ошибку. Оно должно быть так:
dV = a*dt
V = V + dV
dx = V*dt
x = x + dx
А насчет прямого метода - это только если параметры остаются такими, какие они есть. Если же ускорение меняется от времени, да еще и не по закону (а как пользователь захочет) - прямой метод не поможет.
← →
C3H7OH (2003-08-04 03:16) [6]да,, замудрили слегка так
если смотреть как изменяются координаты по по-шагово
то так:
v = v + a*dt
x = x + v*dt
а если мы не следили за телом а просто хотим знать зависимость x(t).
зная что оно движется равноускоренно,
то пишем так:
x( t ) = x0 + v0*t + a*t^2/2 - интеграл вон тех выражений, есно при а = const
← →
Думкин (2003-08-04 05:39) [7]> C3H7OH (04.08.03 03:16)
Как раз никто ничего не мудрил, Ваш ответ полностью содержится в предыдущих постах.
← →
C3H7OH (2003-08-04 07:43) [8]я просто пояснил что где применяется...
к тому же x( t ) = x0 + v0*t + a*t^2/2 содержит именно t а не dt
так что разница есть:)
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c