Я использую Box2D. Как вы можете видеть, есть три динамических тела, связанных друг с другом (представьте себе таблицу как вид спереди). LEG1 и LEG2 подключены к статическому телу (это заземление). Еще одно динамичное тело падает на стол.
Мне нужно получить компрессию в LEG1 и LEG2 отдельно.
Суставы имеют GetReactionForce()
функцию, которая возвращает a b2Vec
, которая, в свою очередь, имеет Length()
и LengthSqd()
функции. Это даст общую сумму сил в любом взятом суставе. Но мне нужны силы в отдельных телах, которые связаны с суставами. Как только вы соедините несколько тел одним соединением, оно снова покажет сумму сил, которая не нужна. Вот случай, о котором я говорю:
collision-detection
ios
box2d
Микаил Абдуллаев
источник
источник
Ответы:
Как на расстоянии, так и на сварных соединениях имеются локальные анкеры. Каждый якорь относительно одного из тел, соединенных суставом. Вы можете найти свое сжатие отдельного сустава, найдя расстояние между двумя опорными точками в мировом пространстве.
Вы можете использовать эти функции, чтобы получить их:
Чтобы преобразовать эти точки в мировое пространство, вы можете использовать функцию для каждого тела, которая называется:
Сварочные соединения (или дистанционные соединения) должны использовать мягкие ограничения, иначе ошибка в большинстве случаев будет незначительной.
источник