Войти
IrrlichtСтатьи

физика1 -- Начало (Newton)

Автор:

Использование Физики Newton под графическим движком Irrlicht

Я расскажу, как использовать физический движок Newton вместе с графическим движком Irrlicht.

screenshot0 | физика1 -- Начало (Newton)

вот пример для скачивания:
http://www.classx.ru/Physic/Ex01_Physics.zip (сам пример)
http://www.classx.ru/Physic/Base_1_0.zip (библиотеки)

Не забудьте перед запуском добавить (в основную директорию) файлы
Newton.dll
Irrlicht.dll

Все комментарии, объяснения и пояснения прямо в коде (ибо там они чаще читаются)
Если есть вопросы, пишите -- я отвечу.
Раньше не писал здесь статей, так что смело спрашивайте, спрашивайте, спрашивайте!

Если возникнет необходимость, могу продолжить курс в сторону (в порядке возрастания трудностей):
*) Сложных мешей ("много" полигональные модели вместо простых кубиков)
*) Материалы (трение, контактные процессы)
*) Связи, "точная" физика (подвеска, амортизация, люфт)
*) Абстрактная физика (реалистичн. сопротивление воздуха, варианты физ. моделей разной техники -- кранов, авто, кораблей)
*) Техника (авто, трактора, итп)
// Далее -- что я сам изучаю еще
*) Вязкие среды (вода например; сила архимеда, вязкость, трение жидкости, итп)
*) Радголлы (человечки, трупяки, динозавры)


*)Пройдем небольшой экскурс в физику:

Возьмем некую Систему Отсчета и будем все рассматривать в ней (не добавляя "относительно такой-то системы отсчета").
(Система Отсчета -- например: УголКомнаты и Часы)

Возьмем простой Точечный Объект (Точка) -- объект неимеющий размеров, но обладающий массой.
Точка описывается:

1) Координаты (вектор)
2) Скорость (изменение координаты со временем) (вектор)
3) Ускорение (изменение скорости со временем) (вектор)

Пусть X, V, A -- координаты, скорость, ускорение точки соответственно
Пусть t, X(t) -- время, и функция координаты от времени,

Тогда, если понятие производной не вызывает у вас жутких судорог:
X = X(t)
V = X(t)' (первая производная)
A = X(t)'' (вторая производная)

Иначе:
Возьмем некий промежуток времени t
V = A*t
X = V*t

Полагаю вышесказанное не смущает вас, так что идем дальше:

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

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

А чтобы менять ускорение -- нужно приложить силу.

F = M*A, где M -- масса тела, F -- приложенная к телу сила, A -- результирующее ускорение.

*) Сила земного притяжения
Однако, спустимся с небес на землю и ощутим Силу земного притяжения:

Fg = M*g, где Fg -- сила гравитации, действующая на тело, g = 9.8 м/с^2 -- ускорение свободного падения.

На тело в результате действует сумма всех приложенных к нему сил. Т.о. чтобы только удерживать в воздухе некоторое тело, нужно приложить силу, неменьшую, чем Fg.

Что же происходит, если никто не удерживает тело??
Да-да-да оно падает вниз все быстрее и быстрее (вы тоже так подумали?), т.к. единственная сила, действующая на него -- Fg, соответственно ускорение тела равно ускорению свободного падения:

F = Fg
F = M*A
A = g

*) Сила сопротивления воздуха
Но в жизни разные тела падают с разной скоростью! Почему? Потому что их сдерживает сила сопротивления воздуха!
(Именно поэтому я ввел хоть и примитивный вариант этой силы в пример -- иначе все тела бы падали с одинаковой скоростью :) )

В жизни сила сопротивления воздуха нелинейно (очень сложная зависимость) зависит от скорости объекта, формы, и многих параметров, так что даже приближенный ее расчет трудоемок.

*) Сила реакции опоры
Как бы то ни было, даже выпустив парашют, мы рано или поздно (скорее первое) упадем с небес на землю. Почему же мы не провалимся сквозь нее (ведь земное притяжение продолжает действовать)? Потому что вступают в игру силы реакции опоры

N = -Fz  , где Fz -- проекция равнодействующей всех сил действующих на тело (кроме собственно реакции опоры, конечно), на ось Перпендикулярную поверхности опоры.

Отсюда очевидно, что силы реакции опоры удерживают тело на Горизонтальной поверхности, что же касается наклонных поверхностей, и Не точечных объектов...

*)
...Мы рассмотрим в следующем уроке, если интересно. Это лишь малая часть самого скромного курса физики, однако даже этого достаточно для Больших Свершений! Удачи!!!

@ Пример построен с использованием некоторого материала из стандартных примеров, также используются некоторые файлы от NewtonSDK, и я ни в коем случае не претендую на их права.
@ Так же может использоваться некоторый материал из стандартных примеров от IrrlichtSDK, на их права я так же не претендую.

12 августа 2007 (Обновление: 21 янв 2008)

Комментарии [86]