Как изменить код, чтобы учесть этот случай, когда координата находится на ребре или вершине? На картинке показаны образцы некоторых планшетов, на которых необходимо провести тест.
Эту реализацию не я создавал, и очень благодарен человеку, который ее выложил, к сожалению не записал ни название, ни сайт, откуда взял
Код: Выделить всё
// Check if the ray from the test point crosses the edge
if (((p1.Y pt.Y) || (p2.Y pt.Y)) &&
(pt.X < (p2.X - p1.X) * (pt.Y - p1.Y) / (p2.Y - p1.Y) + p1.X))
{
inside = !inside;
}

Подробнее здесь: https://stackoverflow.com/questions/798 ... on-an-edge