2013-02-21 4 views
3

У меня есть два шары, которые всегда должны находиться на расстоянии постоянного расстояния друг от друга. Они могут передвигаться со всеми степенями свободы, пока их расстояние остается постоянным. Представьте, что они волшебным образом связаны магией невидимым стержнем. Во время физического моделирования на этих сферах применяются различные силы для их перемещения.Какое ограничение держать фиксированное расстояние между телами?

Я использую две пули SphereShapes для сфер. Какое ограничение (совместное) можно использовать между этими двумя сферами для имитации их постоянного расстояния и соединения?

Мне кажется, что мне нужно ввести виртуальную форму (цилиндр? Капсула?) Для соединения этих двух сфер и ввести сферическое ограничение (шарнирное соединение) на каждом из двух его концов для подключения к сферы.

Есть ли лучший способ достичь этой настройки? Какое ограничение я использую?

ответ

1

Я бы создал собственное ограничение от Point2PointConstraint (шарик и розетка).

Линия 98 - это то, что необходимо изменить. По существу, вы должны создать новый тип ограничений, который знает, что расстояние вы хотите между двумя объектами. Вместо того, чтобы пытаться соответствовать pivotAInW и pivotBInW вместе в мировом пространстве (глубина == 0), то глубина переменная должна быть равна нулю, когда длина вектора, соединяющего pivotAInW и pivotBInW равно расстояние. Вы можете защитить свой код от особого случая, когда оба опорных точки находятся в одной и той же точке пространства и создают направление, в котором нужно применить импульс, скажем, о оси x.

Смежные вопросы