Я тестирую, чтобы определить, перекрываются ли два полигона. Я разработал первую версию, которая делает простую точку в полигоне (рис. 1). Однако я ищу, чтобы обновить этот метод, чтобы справиться с ситуациями, когда вершины многоугольника A не находятся в многоугольнике B, но их линейные сегменты перекрываются (рис. B).Испытание на столкновение полигонов/испытание на перекрытие многоугольника в C# - не точка в полигоне
Любая помощь при запуске будет принята с благодарностью.
Все, что вам нужно сделать, это противоположная точка в тесте полигона. т. е. 'var isCollision = IsPointInPolygon (a, b) || IsPointInPolygon (b, a) ' – Mike
Майк, не могли бы вы рассказать немного больше? –
Используя пример изображения, который вы показали на рис. 2, треугольник не имеет точки в прямоугольнике; однако прямоугольник имеет точку в треугольнике. Если два полигона перекрываются, то один из них будет иметь точку в другой. Проверьте, имеет ли A точку в B, а также, если B имеет точку в A, если либо истинно, то есть столкновение, если ни одно не верно, то они не касаются. – Mike