Какой самый простой способ рассчитать положение квадратного светильника в Box2D? - PullRequest
0 голосов
/ 22 сентября 2019

Я использую библиотеку C ++ Box2D.Я создал тело и добавил к нему несколько квадратных приспособлений.Эти квадратные приборы смещены относительно положения тела (аналогично тому, что сделано в разделе «Несколько приборов» здесь: https://www.iforce2d.net/b2dtut/fixtures).

Моя идея состоит в том, чтобы система рендеринга перебирала прибор и рисовалаих на экран. Тем не менее, я не могу найти метод для извлечения X, Y и угла прибора. При переходе моего мира Box2D изменяется положение тела X / Y / вращения, что меняет X / Y прибора./ rotation psoition.

Есть ли простой способ извлечь эту информацию из квадратного приспособления? Я мог бы самостоятельно вычислить эту позицию, но мне кажется странным, что Box2D не предлагает решения, которое можно сделатьэто.

Ответы [ 2 ]

1 голос
/ 22 сентября 2019
  1. Светильники не имеют собственного местоположения и не преобразуются самостоятельно.

  2. Фигуры имеют локальные точки (например, b2CircleShape имеет центр, b2PolygonShape имеетсписок вершин).Тем не менее, формы могут быть повторно использованы в нескольких приспособлениях / корпусах.Поэтому им не имеет смысла знать о каких-либо приспособлениях / телах, к которым они прикреплены.

Чтобы определить местоположение фигуры, когда она прикреплена к телу в мировом пространстве, простоиспользуйте метод GetWorldPoint тела:

body.GetWorldPoint(p);

, где p - любая локальная точка фигуры, прикрепленной к этому телу (например, местоположение b2CircleShape или вершина b2PolygonShape).

0 голосов
/ 22 сентября 2019

Из того, что вы описали, похоже, вам нужен инструмент для расчета того, где все находится.Я могу ошибаться в этом, но в документации к используемому вами продукту я обнаружил такие вещи, как «Лучевое литье» и «Тестирование AABB».Оба описаны в разделе документации World Querying .

...