Я предполагаю, что вы пытаетесь сделать это для любого вида многоугольника.
Проверьте это, чтобы получить представление о методах решения сложных полигонов. Это на самом деле то, что вы, вероятно, хотите, и это алгоритм наведения лучей, который вы упомянули ранее.
http://alienryderflex.com/polygon/
Краткое объяснение того, что у вас есть многоугольник, вы знаете его точки. Построить связи между точками (векторами). Протяните луч по всему многоугольнику через точку, которую вы пытаетесь проверить.
На каждом пересечении луча с одним из векторов многоугольника увеличивайте счетчик на 1, начиная с 0. Если вы пересекаете точку и этот счетчик является четным, его нет в многоугольнике. Если счетчик нечетный, то эта точка находится внутри многоугольника.