ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
751637 Топик полностью
argus98 (23.04.2017 17:32 - 17:54, просмотров: 314) ответил Гудвин на Поинтересуюсь: Кто как решает задачу определения вхождения точки с определенными координатами в полигон произвольной формы на карте? Например, имеется *.kml файл с несколькими десятками полигонов. Есть задача определить принадлежность точки
Как уже заметили ниже, критерий нахождения точки внутри полигона = поворот угла радиус-вектора на 2pi Приращение угла от точки (x1,y1) до (x2,y2) = arctg(y2/x2) - arctg(y1/x1) Примечания: а) Чтобы избежать вычисления arctg имеет смысл использовать тождество: arctg(y2/x2) - arctg(y1/x1) = arctg((y2*x1-y1*x2)/(x2*x1+y2*y1)) = arctg(X/Y), т.е. числитель и знаменатель X/Y вычислять раздельно б) т.к. главное значение arctg находится в пределах -pi/2..+pi/2, то следует отслеживать знаки числителя (X) и знаменателя (Y), которые однозначно определяют, в каком квадранте находится текущий угол PS Ну и для верности: если точка находится ВНЕ полигона, то поворот будет = 0. 0 и 2pi различить легко, поэтому требования к точности вычислений не шибко высокие. Ну разве что только полигон будет слишком изощрённой и/или кол-во точек границы полигона слишком большое.