При поиске тестов точка-полигон я нашел описанный Дином Пови здесь . Мне нравится этот подход, поскольку его легко понять (raycast вдоль оси x), но я столкнулся с небольшим несоответствием с этим методом. При написании модульных тестов для моей реализации я заметил, что при выборе квадрата в качестве «Тест-многоугольника» точки на левом и нижнем краях квадрата распознаются как часть многоугольника, а точки на правой и верхней стороне многоугольника. распознаются как вне многоугольника. Вот небольшой рисунок, показывающий, что я имею в виду (+ не распознаются как внутри, удвоенные линии и х):
+--------+
‖ |
‖ |
x========+
Кто-нибудь знает, как я могу изменить алгоритм, чтобы показать согласованное поведение для точек на краю? Неважно, рассматриваются ли края как внутренние или нет, просто то, что поведение является постоянным.