В его работе используются прилагаемые к NewtonSDK файлы, позволяющие создавать всевозможные виды связей. Для упрощения я скопировал используемые файлы непосредственно в пример (папка customJoints).
Некоторые законы, ограничивающие и определяющие движение объектов.
Под не строгим понятием физического тела:
1) Имеет размеры (куб, шар, цилиндр, сложная форма)
2) Имеет массу (легкий / тяжелый) и центр масс (чем ниже расположен центр масс -- тем устойчивей тело)
3) Инерционно. (чтобы заставить вращаться / остановить вращение нужно приложить силу)
*) Сила трения
Что же касается наклонных плоскостей, то тут ситуация такая:
Если поверхности идеально гладкие (отсутствует сила трения), то тело под действием силы тяжести будет скатываться с малейшим образом наклоненной поверхности. В реальности же мы имеем такую картину сил
F(тр) -- сила трения
F(тяж) -- сила тяжести
N -- сила реакции опоры
Возникает сила трения:
F(тр) < k*N
k -- коэффициент трения, обычно находящийся в пределе между 0 и 1. Однако, при наличии липких поверхностей (шины формулы-1) может быть и больше 1. Которая действует в точке касания, вдоль поверхности, направлена так, чтобы уравновесить действия других сил (сопротивление поверхности к перемещению тела). Однако при возрастании до величины k*N и выше, т.к. сила трения не может расти больше этой величины, то тело начинает движение.
*)ВРАЩЕНИЕ ТЕЛ
Все тела имеют определенные размеры, посему свести всю физику только к перемещению тел под действием сил не удастся. Вводим понятие вращения тел, а точнее ориентацию в пространстве.
Для однозначного задания положения (не координат, а положения в смысле верха, низа) тела (относительно выбранной системы отсчета)в пространстве достаточно задать один вектор -- вектор, на который нужно повернуть тело, из начального положения
Введем еще один вектор "угловой скорости" -- изменения нашего вектора положения, и, аналогично вектор "углового ускорения" -- Момент. Так же как линейное ускорение тела связано с массой, силой, координатами тела, аналогично связаны и новые "угловые" понятия, с той лишь разницей, что вместо массы используется определенная, зависимая от массы и формы тела величина.
Т.о. мы прикладываем к телу т.н. Крутящий Момент, который увеличивает угловую скорость, которая заставляет тело вращаться.
Между Крутящим Моментом и Силой есть прямая связь например:
Крутящий Момент Колеса может "создавать" Силу на поверхночти колеса и наоборот, Сила, касательно приложенная к поверхности колеса, заставляет закрепленное на оси тело вращаться.
Например карусель -- человек придает карусели вращение, прикладывая к ней Силу (по касательной).
Ведущее колесо машины крутит двигатель, в точке соприкосновения с дорогой возникает Сила, созданная крутящим моментом, пока эту Силу уравновешивает сила трения, автомобиль может разгоняться/тормозить. Как известно, если колеса сорвались в юз (силы трения не хватает, для уравновешивания), то сцепление колес с дорогой много хуже, и начинают действовать другие законы. Поэтому же у автомобилей, особенно у гоночных стараются максимально повысить вышеуказанный коэф. трения, так как чем он выше, тем выше предел силы трения, тем выше макс. Сила, которую можно приложить к колесам автомобиля, тем быстрее авто может разгоняться.
Продолжение следует...
@ Пример построен с использованием некоторого материала из стандартных примеров, также используются некоторые файлы от NewtonSDK, и я ни в коем случае не претендую на их права.
@ Так же может использоваться некоторый материал из стандартных примеров от IrrlichtSDK, на их права я так же не претендую.