Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Phyzics programming


clim ©   (2003-07-30 01:19:00) 

как лучше работать с таймером, когда координаты объекта изменяются по законам физики, зависящиx от времени
например
V = V0 + a*t
x = x0 + v0*t + g*t*t/2
(желательно привести какой-нибудь пример)


C3H7OH   (2003-08-04 07:43:00) [1]

я просто пояснил что где применяется...
к тому же x( t ) = x0 + v0*t + a*t^2/2 содержит именно t а не dt
так что разница есть:)


Думкин   (2003-08-04 05:39:00) [2]

> C3H7OH (04.08.03 03:16)
Как раз никто ничего не мудрил, Ваш ответ полностьюсодержится в предыдущих постах.


C3H7OH   (2003-08-04 03:16:00) [3]

да,, замудрили слегка так

если смотреть как изменяются координаты по по-шагово
то так:

v = v + a*dt
x = x + v*dt

а если мы не следили за телом а просто хотим знать зависимость x(t).
зная что оно движется равноускоренно,
то пишем так:

x( t ) = x0 + v0*t + a*t^2/2 - интеграл вон тех выражений, есно при а = const


Asteroid   (2003-07-30 20:15:00) [4]

> Думкин © (30.07.03 06:06)
Да, спасибо за замеченную ошибку. Оно должно быть так:

dV = a*dt
V = V + dV
dx = V*dt

x = x + dx

А насчет прямого метода - это только если параметры остаются такими, какие они есть. Если же ускорение меняется от времени, да еще и не по закону (а как пользователь захочет) - прямой метод не поможет.


хм   (2003-07-30 14:37:00) [5]

GetTickCount()


nobody   (2003-07-30 10:13:00) [6]

"Желательно измерять каждый кадр " -- как? (пример)


Думкин   (2003-07-30 06:06:00) [7]

Зависит от того что ты хочешь.
Создать абсолютно реальную систему - сложно. Но если вся кинематика дается в конечных формулах - как приведено(без решения сложных дифуров - 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.


Asteroid   (2003-07-30 02:00:00) [8]

dV = a*dt
dx = x0 + v0*dt + a*dt*dt/2
V = V + dV
x = x + dx,

где dt - время между двумя кадрами. Желательно измерять каждый кадр (раз на раз не приходится, даже с таймером).


Наверх

Титульная страница Поиск, карта сайта Написать письмо