Внутренняя арка в Box2d 2.1

Только что набрёл на следующее:

И это сделано не полигонами.
Интересно, да?

BorisTheBrave написал небольшое дополнение к своему порту Бокса версии 2,1. Оно позволяет вычитать круги из полигональных тел.

Использование b2ConcaveArcShape:
Данная фигура представляет собой полигональную фигуру с вычтенным из неё кругом. Работает так же. как и b2PolygonShape, только ребро, соединяющее первую вершину со второй является вогнутой дугой с заданным радиусом. Диаметр должен быть длиннее расстояния между вершинами, а оставшаяся часть фигуры должна вмещать в себя результатирующую кривую. (не проверяется программно)

Баги:
Наибольшей проблемой является то, что вогнутые дуги не могут соприкасаться друг с другом. Это слишком сложно реализовать (по крайней мере с помощью твёрдых тел, а не тонких дуг), но это не станет большой проблемой, если вы планируете использовать их в качестве статической части мира. Вычисление массы таких тел тоже не приведёт к правильному результату.

Так же, когда вы упираете объекты в статическую дугу, а потом перекатываете их через одну из вершин на концах дуги, иногда они дёргаются. Так же код для TestSegment не был написан, но в сравнении с остальными проблемами, эта звучит тривиально.

Оригинал: personal.boristhebrave.com/project/b2concavearc

Заключение: Вещь довольно интересная, но не стабильная и использует относительно старую версию движка. Использовать на свой страх и риск.

Скачать:
Box2DAS3 v2.1 — Concave Arc.zip
Box2DAS3 v2.1 — Concave Arc.patch

Комментарии (4)

0
Весь вопрос в том, будет ли это работать быстрее, чем тело из 3-5 полигонов? Да и глюки совершенно не радуют.
P.S. А почему версия движка старая? Вроде сейчас как раз 2.1 максмальная, нет?
0
Сейчас 2.1а (не альфа)
Пост датирован 2008 годом.
0
Спасибо! Наверняка пригодится!
0
трамплин
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.