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

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

Создание машины с ODE [Delphi, GLScene, Windows]


Slicer__ ©   (2005-04-24 12:02:00) 

Помогите разобраться как создать машину с использованием ODE. Основу я создал, но вот как сделать что бы колеса поворачивались? Как не пытаюсь - появляются только глюки.


Slicer__   (2005-04-28 19:18:00) [1]

Делаю все как в примере и как описано ниже. Но колеса поворачиваются не равномерно - в воздухе крутся быстро (и без лимита на 0.75 радиан), а на земле очень медленно и не равномерно.
И как мне зафиксировать эту ось, что бы она не болталась свободно при езде?
Вот мой код:

 if IsKeyDown(VK_LEFT) then steer:=steer+0.5;
 if IsKeyDown(VK_RIGHT) then steer:=steer-0.5;

dJointSetHinge2Param (GLODEJointList1.Joints.Joint[i].JointID,dParamVel2,steer);
   dJointSetHinge2Param (GLODEJointList1.Joints.Joint[i].JointID,dParamFMax2,1.2);
   dJointSetHinge2Param (GLODEJointList1.Joints.Joint[i].JointID,dParamLoStop2,-0.75);
   dJointSetHinge2Param (GLODEJointList1.Joints.Joint[i].JointID,dParamHiStop2,0.75);
   dJointSetHinge2Param (GLODEJointList1.Joints.Joint[i].JointID,dParamFudgeFactor2,0.1);


Alek Aaz   (2005-04-27 07:16:00) [2]

Цитата:

Устанавливают/получают параметры ограничения/движения для каждого типа сочленения. Следующие параметры:

dParamLoStop
Нижний предел угла или позиции. Установка этого значения в -dInfinity (значение по умолчанию) выключает нижний предел. Для вращающихся сочленений, это значение должно быть больше чем - pi что бы был эффект.

dParamHiStop
Верхний предел угла или позиции. Установка этого значения в dInfinity (значение по умолчанию) выключает верхний предел. Для вращающихся сочленений, это значение должно быть меньше pi что бы был эффект. Если верхний предел меньше нижнего предела, то оба предела не дают никакого эффекта.


Максимальный угол поворота. от -0,75 до 0,75 радиан, т.е. от -90 до 90 градусов.  Если это поворот колес относительно вертикальной оси, то это конечно круто :)


dParamVel
Желаемая скорость двигателя (здесь должна быть угловая или линейная скорость).

Равна v. Определяется как быстро ты орудуешь "рулем".


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

Что тут непонятно ??? Чем больше у тебя "мышц" тем быстрее будешь проворачивать руль


dParamFudgeFactor
В текущей реализации остановка/двигатель есть маленькая проблема: когда сочленение имеет остановку и двигатель, который пытается не допустить остановки, слишком большая сила может быть приложена за один шаг времени, вызывая “скачки” движения. Это надстроечный показатель(fudge factor) используется для масштабирования избыточной силы. Значение должно лежать между нулем и единицей (значение по умолчанию). Если в сочленении видны скачки движения, значение должно быть уменьшено. Делая это значение меньше можно уберечь двигатель от движения сочленения из положения остановки.

По русски говоря "загрубление" или "усреднение" сил за маленький период времени, чтобы колесо не "дергалось" в "стоячем" положении.

Читать батенька надо. Читать.


Slicer__   (2005-04-26 15:29:00) [3]

Да читал я уже это, объясни на примере колеса.


Alek Aaz   (2005-04-25 04:10:00) [4]

Читать !!! ->   http://ode.org/doc/russian/


Slicer__   (2005-04-24 18:27:00) [5]

Я так понял за поворот отвечают эти функции:

     dJointSetHinge2Param( j, dParamVel, v );
     dJointSetHinge2Param( j, dParamFMax, 0.2 );
     dJointSetHinge2Param( j, dParamLoStop, -0.75 );
     dJointSetHinge2Param( j, dParamHiStop, 0.75 );
     dJointSetHinge2Param( j, dParamFudgeFactor, 0.1);


Но объясните что они значат, точнее что значат эти параметры и как они работают?


[EViL]   (2005-04-24 16:42:00) [6]

http://www.k00m.sexidude.com/article.php?sid=132&&thold=0


Наверх

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