BTFixedConstraint заморозить объектыJavascript

Форум по Javascript
Ответить
Anonymous
 BTFixedConstraint заморозить объекты

Сообщение Anonymous »

Я пытаюсь «заморозить объекты вместе», используя пулю (через javascript + three.js + ammo.js)
Вот моя сцена
https://codepen.io/partypants2/pen/emyl ... rs=0010br/> horeor генерируются над поворотным столом/диск.

. замороженные на месте на поворотном столе/диск ()
Каждый BodyA (лошадь) имеет BTFixedConstraint с BodyB (DISC). Проблема становится очевидной, когда диск () применяется различное вращение: лошади вращаются с фактором вращения Bodyb , выбивая их из их целевой оси. src = "https://i.sstatic.net/mdah8rad.gif"/>
Когда начинается физика, это приводит к активации фиксированных конструктов. Поскольку фиксированные конструкции не настроены правильно, это заставляет лошадей терять выравнивание со своей целевой осью. btfixedconstraint реализация

Код: Выделить всё

// bodyA = the rigidBody being attached
// bodyB = what bodyA is being attached to
const applyFixedConstraint = (bodyA, bodyB) => {
const relRotationAB = getRelativeRotation(bodyA, bodyB);
const relPosBA = getRelativePosition(bodyB, bodyA);
// FRAME IN A
const frameInA = new Ammo.btTransform();
frameInA.setIdentity();
frameInA.getOrigin().setValue(0, 0, 0);
frameInA.setRotation(new Ammo.btQuaternion(0,0,0,1)); // i.e. 'none'
// FRAME IN B
const frameInB = new Ammo.btTransform();
frameInB.setIdentity();
frameInB.getOrigin().setValue(relPosBA.x, relPosBA.y, relPosBA.z);
frameInB.setRotation(new Ammo.btQuaternion(relRotationAB.x, relRotationAB.y, relRotationAB.z, relRotationAB.w));
// RESULT
const fixedConstraint = new Ammo.btFixedConstraint(bodyA,bodyB,frameInA,frameInB); // this line doesn't "freeze items in the air" like it should
physicsWorld.addConstraint(fixedConstraint, true);
return fixedConstraint;
}
Объекты в Bullet/Ammo.js, как правило, имеют множество различных паттернов конструкторов, но BtfixedConstraint только только один: Bodya, Bodyb, Frameina, Frameinb
, поскольку Bodya/body Параметры. < /p>
Сказано

Код: Выделить всё

frameInA
и frameinb ) для замораживания тел вместе с использованием btfixedconstraint ?

Подробнее здесь: https://stackoverflow.com/questions/795 ... ze-objects
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»