-
- Ну если точка на границе полигона и луч пошел через его тело и пересек другую границу, то сколько пересечееий покажет и какое решение будет принято? - Олдфаг(23.04.2017 00:25, )
- В границу надо суметь ещё попасть, даже в целых числах. И в этом случае нужно спрашивать скорее «а как должна разрешаться такая неопределённость» с точки зрения реальных потребностей. - Николай Коровин(23.04.2017 00:33)
- Разве не покажет пересечения с этой гранью в этом случае? Думаю покажет. - ANV(23.04.2017 00:31)
- Так сколько покажет пересечений, если полигон квадрат, точка в середине правой стороны, луч от точки пошел горизонтально влево? - Олдфаг(23.04.2017 00:35, )
- Когда мы решим системы уравнений прямых, мы найдём точку пересечения. Когда мы будем оставлять от прямой луч, мы посмотрим, лежит точка пересечения по нужную сторону от проверяемой точки или по ненужную. И увидим, что они равны, не > и не <. Николай Коровин(212 знак., 23.04.2017 01:47)
- А контуры полигона содержат 100500 точек, полученных с GPS трекера. Задобаешься интерполировать эти прямые, потому, как там все кривое ;) - Гудвин(23.04.2017 01:57)
- Это уже не полигон, а прямо какой-то контур О_О По-моему, тут только интегрировать. - Николай Коровин(23.04.2017 08:38)
- А контуры полигона содержат 100500 точек, полученных с GPS трекера. Задобаешься интерполировать эти прямые, потому, как там все кривое ;) - Гудвин(23.04.2017 01:57)
- Эта ситуация легко проверяема и является граничным условием, которые всегда надо проверять и определять поведение логики программы в таких ситуациях. Алгоритм от этого хуже не становится. - ANV(23.04.2017 00:41)
- Когда мы решим системы уравнений прямых, мы найдём точку пересечения. Когда мы будем оставлять от прямой луч, мы посмотрим, лежит точка пересечения по нужную сторону от проверяемой точки или по ненужную. И увидим, что они равны, не > и не <. Николай Коровин(212 знак., 23.04.2017 01:47)
- Так сколько покажет пересечений, если полигон квадрат, точка в середине правой стороны, луч от точки пошел горизонтально влево? - Олдфаг(23.04.2017 00:35, )
- Говорильни на тему пересечений в тырнетах много. А реального примера работающей функции, на входе которой массив координат точек замкнутого полигона и координаты искомой точки с результатом True/False, увы, нигде нет... - Гудвин(23.04.2017 00:24)
- Вопрос был как считают, написал как делают в геймдеве :) - ANV(23.04.2017 00:27)
- Поправка - не прямую а луч - 1111111(23.04.2017 00:19)
- Вариант. Наверняка даже побыстрее нормалей будет. Найти пересечения прямой со всеми прямыми сторон (система из двух уравнений), отбросить те, что лежат «не с той стороны» от точки (чтобы получить луч), отбросить те, что на прямых лежат вне Николай Коровин(102 знак., 23.04.2017 00:25)
- Когда то из всех попавшихся алгоритмов выбрал именно его. Самый бесхитростный и с простой арифметикой - 1111111(23.04.2017 02:27)
- Да, представил одно, а написал чуть другое) В общем, от исходной точки провести луч "куда-нибудь" точно вне полигона и считать пересечения. - ANV(23.04.2017 00:24)
- Вариант. Наверняка даже побыстрее нормалей будет. Найти пересечения прямой со всеми прямыми сторон (система из двух уравнений), отбросить те, что лежат «не с той стороны» от точки (чтобы получить луч), отбросить те, что на прямых лежат вне Николай Коровин(102 знак., 23.04.2017 00:25)
- Ну если точка на границе полигона и луч пошел через его тело и пересек другую границу, то сколько пересечееий покажет и какое решение будет принято? - Олдфаг(23.04.2017 00:25, )