Как получить процент от того, насколько перекрываются два тела?

Я новичок в LibGdx, и я хочу знать, как я могу получить процент от того, сколько двух тел перекрываются. Пока все, что я знаю, это то, что мне нужно использовать Contact Listener, но чем что? Я использую LibGdx в Java, а не C++. Есть ли способ получить размеры поверхности тел и, может быть, сравнить их? Я буду признателен за любую помощь.:)

Например. Допустим, у нас есть 2 тела (КВАДРАТЫ) с именами b1 и b2. Один из них настроен как датчик, чтобы они могли проходить друг через друга. И что я хочу сделать, так это то, что консоль распечатывает процент того, насколько они перекрываются, когда их координата x одинакова.

1 ответ

Решение

Для двух полигонов вы можете использовать алгоритм отсечения полигонов, чтобы найти перекрывающуюся область. Здесь есть примеры на многих языках: http://rosettacode.org/wiki/Sutherland-Hodgman_polygon_clipping

Для двух кругов это намного проще, вы сможете найти способ сделать это с помощью быстрого поиска в Google, например. http://mathworld.wolfram.com/Circle-CircleIntersection.html

Для круга и многоугольника я не знаю ни одного простого или удобного метода.

Другие вопросы по тегам