У меня есть мир в box2D, где я использую 2 тела края для представления стены (у меня есть 2, потому что между двумя объектами может быть разный угол)
Моя проблема в том, что каждый раз, когда объект круга движется вдоль первого края, когда он достигает второго края, он обнаруживает столкновение и отскакивает от стены. Даже если между двумя краями нет угла.
Кроме того, если мой объект круга попадет в точку пересечения двух ребер (с углом или без угла), он отскочит в неопределенном направлении.
Как я могу исправить или предотвратить такое поведение?
Углы являются приблизительными
Для коллинеарных ребер я бы добавил некоторую предварительную обработку, которая объединит два коллинеарных ребра в один, чтобы избавиться от таких проблем.
Для второго случая. Единственное, что приходит мне в голову, — это обнаружить столкновение с несколькими ребрами (с некоторым допуском, точно не точное значение), а затем вычислить биссектрису интересующих ребер — исходя из этого, и угол, при котором объект круга попадает в ребра, вычисляет новый угол.
Других решений пока нет …