Страница 1 из 1

Как узнать входит ли точка в квадрат?

Добавлено: 05 июл 2020, 20:28
k0de
Здравствуйте.
Имейте ввиду я совсем нуб в этом деле, так что сильно по почкам не бейте.

Если у меня есть координаты двух точек, как я могу узнать входит ли третья координата в этот квадрат?
К примеру первая точка имеет координаты X1; Y1, вторая точка имеет координаты X2; Y2
Координаты искомая точки : N, M
Могу ли я посчитать так:
Если (N > X1) и (N < X2) и (M > Y1) и (M < Y2) = точка входит в этот квадрат.

Или с картами и координатами это так не работает?

// приложил картинку что бы было понятнее что я имею ввиду
map_in.png
map_in.png (390.15 КБ) 8589 просмотров

Re: Как узнать входит ли точка в квадрат?

Добавлено: 06 июл 2020, 06:16
trir
а это квадрат?

Re: Как узнать входит ли точка в квадрат?

Добавлено: 06 июл 2020, 06:30
tikhpetr
По 2 точкам - что угодно, но и квадрат тоже.

Re: Как узнать входит ли точка в квадрат?

Добавлено: 06 июл 2020, 06:52
gamm
trir писал(а): 06 июл 2020, 06:16а это квадрат?
зависит от проекции, может и нелинейной трапецией оказаться. Постановка некорректная.

Re: Как узнать входит ли точка в квадрат?

Добавлено: 06 июл 2020, 17:01
Sergey Astakhov
k0de писал(а): 05 июл 2020, 20:28Или с картами и координатами это так не работает?
Зависит от размера квадрата и вида проекции. Надо просто помнить, что тут у нас не плоская геометрия, а сферическая, на поверхности шара (или эллипсоида, или, если быть совсем точным - геоида).
На равноугольных проекциях и небольших размерах можно считать и таким образом. Или если брать в качестве значений не координаты проекции, а координаты в градусах.
К примеру такие проверки часто используют в пространственных индексах.

Re: Как узнать входит ли точка в квадрат?

Добавлено: 06 июл 2020, 18:49
tikhpetr
Мне кажется, ТС имел ввиду, что при заданном выражении точка попадает внутрь полигона некоей формы.

Re: Как узнать входит ли точка в квадрат?

Добавлено: 07 июл 2020, 17:44
k0de
Ну может и не квадрат, может полгон. Я же прям сразу предупредил что нуб полный.
Если "некорректный", то подскажите как корректно ставить вопрос.
Как вообще определяют вхождения координат в ту или иную область? Просто получить координаты двух точек можно легко. И третью координату тоже. Но как проверить правильно что она входит в этот регион или нет.

Re: Как узнать входит ли точка в квадрат?

Добавлено: 07 июл 2020, 19:33
tikhpetr
На мой взгляд, проще всего визуально. Например, в SAS. Planet. На крайняк, в Google Earth. А аналитически координаты искомой точки должны удовлетворять условиям:
Х1<N<X2
Y1>M>Y2
Важно! X - долгота, Y - широта
А, забыл! X1, Y1 - координаты левого верхнего угла полигона, X2, Y2 - левого нижнего.

Re: Как узнать входит ли точка в квадрат?

Добавлено: 08 июл 2020, 03:53
Sergey Astakhov
k0de писал(а): 07 июл 2020, 17:44Ну может и не квадрат, может полгон.
Это сильно меняет дело. Опишите тогда исходную задачу, чего вы этой проверкой хотите добиться?
k0de писал(а): 07 июл 2020, 17:44Как вообще определяют вхождения координат в ту или иную область?
Алгоритмов много разных, можете начать со списка из википедии: https://ru.wikipedia.org/wiki/%D0%97%D0 ... 0%BA%D1%83

Re: Как узнать входит ли точка в квадрат?

Добавлено: 08 июл 2020, 21:56
Svility
Если на PG, то можно так:

Код: Выделить всё

SELECT ST_AsText(ST_Intersection('POINT(42.12897878 47.54734956)'::geometry, (SELECT ST_Envelope('LINESTRING(42.04946049 47.55376783, 42.07536541 47.54070914)'::geometry))));
Строим рамку по 2-м точкам и проверяем пересекает ли точка полученную область.

Re: Как узнать входит ли точка в квадрат?

Добавлено: 09 июл 2020, 14:13
k0de
Спасибо. Но что такое PG?

Re: Как узнать входит ли точка в квадрат?

Добавлено: 09 июл 2020, 14:22
trir
https://postgis.net/
топология везде работает, просто надо понимать - что в одной проекции квадрат, в другой - им не является

Re: Как узнать входит ли точка в квадрат?

Добавлено: 09 июл 2020, 18:45
granit201z
k0de писал(а): 05 июл 2020, 20:28Координаты искомая точки : N, M
Могу ли я посчитать так:
Если (N > X1) и (N < X2) и (M > Y1) и (M < Y2) = точка входит в этот квадрат.

Или с картами и координатами это так не работает?
почему не работает? чем карта отличается от координатной плоскости в рамках данной задачи??