алгоритм наведения лучей без боковых координат - PullRequest
1 голос
/ 05 марта 2012

Я пытаюсь определить, находится ли точка внутри многоугольника.Даны только координаты углов.После некоторых исследований я нашел алгоритм приведения лучей , но, похоже, мне нужен вектор, заполненный координатами стороны многоугольников.Я также пытался вычислить эти координаты, но похоже, что это не решение проблемы.

Возможно, я неправильно интерпретирую алгоритм, поэтому было бы неплохо, если бы кто-то мог подтолкнуть меня в правильном направлении.

1 Ответ

1 голос
/ 06 марта 2012

Я предполагаю, что вы пытаетесь сделать это для любого вида многоугольника.

Проверьте это, чтобы получить представление о методах решения сложных полигонов. Это на самом деле то, что вы, вероятно, хотите, и это алгоритм наведения лучей, который вы упомянули ранее. http://alienryderflex.com/polygon/

Краткое объяснение того, что у вас есть многоугольник, вы знаете его точки. Построить связи между точками (векторами). Протяните луч по всему многоугольнику через точку, которую вы пытаетесь проверить.

На каждом пересечении луча с одним из векторов многоугольника увеличивайте счетчик на 1, начиная с 0. Если вы пересекаете точку и этот счетчик является четным, его нет в многоугольнике. Если счетчик нечетный, то эта точка находится внутри многоугольника.

...