Посчитать расстояние от точки до точки: Sorry, this page can’t be found.

Содержание

Расстояние от точки до отрезка



Расстоянием от точки до отрезка является либо перпендикуляр, опущенный из этой точки на отрезок, либо минимальное расстояние от точки до одного из концов отрезка.
Если треугольник, вершинами которого является данная точка и концы заданного отрезка, является тупоугольным (проверка на тупоугольность проводится рассмотрением знака скалярного произведения соответствующих векторов, построенных на сторонах треугольника (кос тупого угла отрицательный))(т. е. из данной точки невозможно опустить перпендикуляр на данный отрезок), то расстоянием от точки до отрезка считается минимальное расстояние от данной точки, до одного из концов отрезка. Оно определяется с помощью формулы:
((х1— х2)2 + (у1 — у2)2)-1/2.

Если все же перпендикуляр опустить возможно, то расстоянием от точки до отрезка считается длина этого перпендикуляра. Ее можно определить двумя способами:
1) посчитав площадь треугольника по двум формулам (полувысота на сторону и полупроизведение сторон на синус угла между ними) мы можем выразить высоту как:

h = (AC • AB • sin (AC, AB)) / BC ;

2) можем определить координаты точки пресечения отрезка с перепендикуляром, опущенным из данной точки на отрезок и посчитать расстояние между двумя точками. Для этого сначала нам надо найти уравнение перпендикуляра к данной прямой, проходящего через данную точку, затем решить систему уравнений (k и l — координаты вершины перпендикуляра, x1, y1, x2, y2 — координаты концов отрезка):
(1)(x — x1)(y2 — y1) = (y — y1)(x2 — x1

)
(2) (x — k)(x2 — x1) = — (y — l)(y2 — y1)
Если (x2 — x1) = 0, то решение:
x = x1
y = l
.
Если (y2 — y1) = 0, то решение:
y = y1
x = k
.
В остальных случаях (пусть (x2 — x1) = α, (y2 — y1) = β):
x = (α / β) (y — y1) + x1
y = ((α2 / β)y1 + α (k — x1) + βl) / ((α2 / β) + β)
.

Расстояние от точки до прямой в пространстве.

Формула для вычисления расстояния от точки до прямой в пространстве

Если s = {m; n; p} — направляющий вектор прямой l, M1(x

1, y1, z1) — точка лежащей на прямой, тогда расстояние от точки M0(x0, y0, z0) до прямой l можно найти, используя формулу

Вывод формулы вычисления расстояния от точки до прямой в пространстве

Если задано уравнение прямой l то несложно найти s = {m; n; p} — направляющий вектор прямой и M1(x1, y1, z1) — координаты точки лежащей на этой прямой. Из свойств векторного произведения известно, что модуль векторного произведения векторов равен площади параллелограмма построенного на этих векторах

S = |M0M1×s|.

С другой стороны площадь параллелограмма равна произведению его стороны на высоту проведенную к этой стороне

S = |s|d.

В нашем случае высота будет равна расстоянию от точки до плоскости d, а сторона параллелограмма равна модулю направляющего вектора s.

Приравняв площади несложно получить формулу расстояния от точки до прямой.

Примеры задач на вычисление расстояния от точки до прямой в пространстве

Пример 1.

Найти расстояние между точкой M(0, 2, 3) и прямой
x — 3 = y — 1 = z + 1
212

Решение.

Из уравнения прямой получим:

s = {2; 1; 2} — направляющий вектор прямой;

M1(3; 1; -1) — точка лежащая на прямой.

Тогда

M0M1 = {3 — 0; 1 — 2; -1 — 3} = {3; -1; -4}

M0M1×s = ijk = 
  3    -1    -4  
  2    1    2  

= i ((-1)·2 — (-4)·1) — j (3·2 — (-4)·2) + k (3·1 -(-1)·2) = {2; -14; 5}

d = |M0M1×s| = √22 + (-14)2 + 52&nbsp=&nbsp√225&nbsp=&nbsp15 = 5
|s|√22 + 12 + 22√93

Ответ: расстояние от точки до прямой равно 5.

Расстояние между двумя точками на поверхности Земли | by shemanovskiy

Представим, что для чего-то понадобилось измерить расстояние между двумя точками на поверхности Земли, например, расстояние между Красной площадью и Эрмитажем. Конечно, можно попробовать решить задачу в лоб и посчитать евклидово расстояние по формуле:

но этот подход не заработает по той простой причине, что евклидова метрика предназначена для вычисления расстояния на плоскости, а поверхность Земли — это всё-таки фигура, очень близкая к сфере.

Для решения такой задачи нужно обратиться к редко используемым тригонометрическим функциям.

Одна из таких функций, называется синус-верзус, или, по-другому, версинус. Он представляет собой расстояние от центральной точки дуги, измеряемой удвоенным данным углом, до центральной точки хорды, стягивающей дугу. Вычисляется версинус по формуле:

Гаверсинус — это просто половина версинуса, и именно эта функция поможет нам в решении задачи с поиском расстояния:

Для любых двух точек на сфере гаверсинус центрального угла между ними вычисляется по формуле:

В этой формуле:

  • d — это центральный угол между двумя точками, лежащими на большом круге
  • r — радиус сферы
  • φ₁ и φ₂ — широта первой и второй точек в радианах
  • λ₁ и λ₂ — долгота первой и второй точек в радианах

Обозначим временно гаверсинус отношения длины к радиусу как переменную h:

Тогда длину d можно вынести за знак равенства:

а для того, чтобы избавиться от дроби, выразим гаверсинус через арксинус:

затем раскроем переменную h:

подставим формулу гаверсинуса и получим формулу вычисления расстояния:

Теперь вернёмся к исходной задаче поиска расстояния между Красной площадью и Эрмитажем.

Для Красной площади Гугл подсказал координаты (55.7539° N, 37.6208° E), а для Эрмитажа — (59.9398° N, 30.3146° E).

Прежде, чем подставлять координаты в формулу, их нужно перевести в радианы.

Для того, чтобы вычислить длину, нужно полученное значение арксинуса умножить на два радиуса сферы. Подсчёты усложняет тот факт, что Земля не является идеальной сферой и её радиус немного варьируется. Воспользуемся усреднённым значением радиуса, которое, в соответствии со стандартом WGS84 приблизительно равно 6371 км:

Произведя умножение, получаем искомое значение, которое приблизительно равно 634.57 км.

Кстати, из-за того, что Земля — не идеальная сфера, погрешность расчётов с использованием этой формулы, составляет около 0,5%.

Определение расстояния от точки до плоскости

Расстояние от точки до плоскости равно длине перпендикуляра, опущенного из точки на плоскость, и в начертательной геометрии определяется графически согласно следующему алгоритму.

Алгоритм построения

  1. Плоскость переводят в проецирующее положение с помощью методов преобразования ортогональных проекций.
  2. Из точки на плоскость опускают перпендикуляр и находят его длину. Направление проекции перпендикуляра определяется на основании теоремы о проецировании прямого угла.

Задача № 1

Рассмотрим, как реализуется составленный нами алгоритм на практике. На рисунке ниже представлены графические построения, необходимые для определения расстояния между точкой N и плоскостью α, заданной треугольником ABC.

Ход решения

  • Через вершину B» треугольника A»B»C» проводим проекцию h» горизонтали h. По линиям связи находим h’.
  • Переводим ABC в проецирующее положение. Для этого перпендикулярно h вводим новую фронтальную плоскость П4. Проецируем на неё точку N и треугольник ABC.
  • Из точки N»1 проводим N»1⊥ A»11. Длина отрезка N»11 – искомое расстояние между плоскостью треугольника ABC и точкой N.

Задача № 2

Требуется определить величину расстояния между точкой K и плоскостью β, заданной следами. В отличие от предыдущей задачи здесь нет необходимости проводить линию уровня, так как её роль выполняет проекция h

0β.

Ход решения

  • Переводим плоскость β в проецирующее положение. Для этого перпендикулярно следу h0β вводим дополнительную фронтальную плоскость П4. На прямой f0β берем произвольную точку E, определяем её проекции E», E’ и E»1. Через E»1 и X0α1 проводим прямую f0β1, которая является следом плоскости β на П4. По линии связи определяем проекцию K»1 точки K.
  • Из K»1 проводим перпендикуляр K»11 в направлении прямой f0
    β
    1. Длина отрезка K»11 – величина искомого расстояния от K до β.

Если требуется перевести отрезок KM в исходную систему плоскостей, то это делается с помощью обратных преобразований, как показано на следующем рисунке.

Похожие задачи:

Как измерять расстояние в Google Картах на iPhone, Android или компьютере

Благодаря «корпорации добра» мы с легкостью находим комфортную дорогу от точки «А» до точки «Б». Но знали ли вы, что Карты Google позволяют измерить и простое расстояние между двумя точками по прямой?

♥ ПО ТЕМЕ: Карты Google Maps на iPhone без интернета — как пользоваться.

 

Как измерить расстояние между двумя точками в веб-версии Google Maps

1. Откройте не вашем ПК или Mac официальный сайт Карт Google.

2. Найдите стартовую точку вашего маршрута и кликните по ней правой кнопкой мышки.

3. В открывшемся меню выберите пункт Измерить расстояние.

4. Кликните по точке окончания вашего маршрута или следующей точке. Расстояния будут указаны рядом с линейкой.

Примечание: если вам нужно изменить местоположение точки, перетащите ее. Если нужно удалить измерение, просто нажмите на точку.

♥ ПО ТЕМЕ: Яндекс.Навигатор без Интернета (офлайн): как пользоваться на iPhone и iPad.

 

Как измерить расстояние между двумя точками в приложении Google Maps

Измерение расстояний доступно и в приложениях Карт Google для Android и iOS. И там, и там процесс измерения работает практически одинаково. Давайте рассмотрим его на примере фирменного решения для iOS:

1. Откройте приложение Google Maps на своем iPhone или iPad.

2. Найдите первую точку и коснитесь её пальцем (задержите палец на пару секунд), чтобы установить красную булавку.

3. В нижней части карты нажмите на название отмеченного вами места.

4. В выпадающем меню выберите Измерить расстояние.

5. Наведите черное перекрестье прицела на точку «Б» вашего маршрута передвигая палец по карте.

6. Расстояние (в нашем случае в километрах) будет отображено в нижней левой части экрана.

Отменить измерение можно по нажатия на стрелку Назад в левом верхнем углу экрана или нажатием на меню-многоточие — Очистить.

Примечание: если вам требуется сложное измерение из нескольких точек, просто продолжите перемещать перекрестье после шага 6. Наведите его на третью точку маршрута — и получите расстояние в км уже до неё с учетом двух предыдущих.

Смотрите также:

Не удается найти страницу | Autodesk Knowledge Network

(* {{l10n_strings.REQUIRED_FIELD}})

{{l10n_strings.CREATE_NEW_COLLECTION}}*

{{l10n_strings.ADD_COLLECTION_DESCRIPTION}}

{{l10n_strings.COLLECTION_DESCRIPTION}} {{addToCollection.description.length}}/500 {{l10n_strings.TAGS}} {{$item}} {{l10n_strings.PRODUCTS}} {{l10n_strings.DRAG_TEXT}}  

{{l10n_strings.DRAG_TEXT_HELP}}

{{l10n_strings.LANGUAGE}} {{$select.selected.display}}

{{article.content_lang.display}}

{{l10n_strings.AUTHOR}}  

{{l10n_strings.AUTHOR_TOOLTIP_TEXT}}

{{$select.selected.display}} {{l10n_strings.CREATE_AND_ADD_TO_COLLECTION_MODAL_BUTTON}} {{l10n_strings.CREATE_A_COLLECTION_ERROR}}

Евклидова, L1 и Чебышёва — 3 основные метрики, которые пригодятся в Data Science

Не важно, начинаете вы осваивать Data Science или работаете в этой сфере не первый год, вам наверняка пригодятся эти метрики. Разбираемся, что они из себя представляют и чем отличаются друг от друга.

Евклидово расстояние (расстояние по прямой)

Евклидово расстояние самое интуитивное для понимания: именно Евклидову метрику мы представляем, когда кто-то просит нас измерить расстояние между точками.

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

Евклидово расстояние характеризуется прямой линией. Допустим, вам нужно измерить расстояние по прямой между точками A и B на карте города, приведённой ниже.

Евклидово расстояние между двумя точками считается по теореме Пифагора

Для расчёта Евклидового расстояния вам понадобятся лишь координаты этих двух точек. Дистанцию между ними можно будет рассчитать по формуле Пифагора.2 = 67 600, а не 76 600. Тогда результат будет равен ~321.

Расстояние L1 (расстояние городских кварталов)

Расстояние L1 также известно как расстояние городских кварталов, манхэттенское расстояние, расстояние такси, метрика прямоугольного города — оно измеряет дистанцию не по кратчайшей прямой, а по блокам. Расстояние L1 измеряет дистанцию между городскими блоками: это расстояние всех прямых линий пути.

На следующем изображении показано расстояние L1 между двумя точками.

Расстояние L1 между двумя точками по блокам

Кроме показанного пути существует несколько альтернативных способов. Например, от точки A можно подняться на два блока вверх, а потом на три блока вправо, либо же на три блока вправо и два блока вверх.

Но расстояние L1 — это всё же просто дистанция, а поэтому траектория здесь не имеет значения. Единственное, что нужно понимать, это примерный путь: нужно пройти какое-то количество X блоков на восток и Y блоков на север. Сумма расстояний этих блоков и будет расстоянием L1 от точки A до точки B.

Пример расчёта расстояния L1 между двумя точками

Расстояние Чебышёва (метрика шахматной доски)

Расстояние Чебышёва известно ещё как расстояние шахматной доски. Чтобы понять принцип такой метрики, нужно представить короля на шахматной доске — он может ходить во всех направлениях: вперёд, назад, влево, вправо и по диагонали.

Расстояние Чебышёва между двумя точками

Разница расстояния L1 и расстояния Чебышёва в том, что при переходе на одну клетку по диагонали в первом случае засчитывается два хода (например вверх и влево), а во втором случае засчитывается всего один ход.

Ещё эти оба расстояния отличаются от Евклидового расстояния тем, что у Евклидового движение по диагонали рассчитывается по теореме Пифагора.

Сравнение путей 3 метрик

Расстояние Чебышёва можно представить как проход по шахматной доске.

Вот ещё один пример представления расстояния Чебышёва. Допустим, у вас есть дрон с двумя независимыми моторами: первый мотор тянет дрон вперёд, второй — в сторону. Оба мотора могут работать одновременно и равномерно на максимуме своей мощности.

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

Посмотрите ещё раз на карту города по расстоянию Чебышёва. Первый шаг — оба мотора работают одновременно, второй шаг идентичен первому, а на третьем шаге мотор, тянущий дрон вперёд, отключается, и дрон смещается в сторону.

Таким образом, расстояние Чебышёва определяется как самая большая дистанция на одной оси.

Пример расчёта расстояния Чебышёва между двумя точками

Прим. ред. Полученный результат является условным и некорректно сравнивать его с другими результатами.

Перевод статьи «3 distances that every data scientist should know»

Найдите расстояние между точкой и линией

Если вы считаете, что контент, доступный через Веб-сайт (как определено в наших Условиях обслуживания), нарушает одно или другие ваши авторские права, сообщите нам, отправив письменное уведомление («Уведомление о нарушении»), содержащее в информацию, описанную ниже, назначенному ниже агенту. Если репетиторы университета предпримут действия в ответ на ан Уведомление о нарушении, оно предпримет добросовестную попытку связаться со стороной, которая предоставила такой контент средствами самого последнего адреса электронной почты, если таковой имеется, предоставленного такой стороной Varsity Tutors.

Ваше Уведомление о нарушении прав может быть отправлено стороне, предоставившей доступ к контенту, или третьим лицам, таким как в качестве ChillingEffects.org.

Обратите внимание, что вы будете нести ответственность за ущерб (включая расходы и гонорары адвокатам), если вы существенно искажать информацию о том, что продукт или действие нарушает ваши авторские права. Таким образом, если вы не уверены, что контент находится на Веб-сайте или по ссылке с него нарушает ваши авторские права, вам следует сначала обратиться к юристу.

Чтобы отправить уведомление, выполните следующие действия:

Вы должны включить следующее:

Физическая или электронная подпись правообладателя или лица, уполномоченного действовать от их имени; Идентификация авторских прав, которые, как утверждается, были нарушены; Описание характера и точного местонахождения контента, который, по вашему мнению, нарушает ваши авторские права, в \ достаточно подробностей, чтобы позволить репетиторам университетских школ найти и точно идентифицировать этот контент; например, мы требуем а ссылка на конкретный вопрос (а не только на название вопроса), который содержит содержание и описание к какой конкретной части вопроса — изображению, ссылке, тексту и т. д. — относится ваша жалоба; Ваше имя, адрес, номер телефона и адрес электронной почты; и Ваше заявление: (а) вы добросовестно полагаете, что использование контента, который, по вашему мнению, нарушает ваши авторские права не разрешены законом, владельцем авторских прав или его агентом; (б) что все информация, содержащаяся в вашем Уведомлении о нарушении, является точной, и (c) под страхом наказания за лжесвидетельство, что вы либо владелец авторских прав, либо лицо, уполномоченное действовать от их имени.

Отправьте жалобу нашему уполномоченному агенту по адресу:

Чарльз Кон Varsity Tutors LLC
101 S. Hanley Rd, Suite 300
St. Louis, MO 63105

Или заполните форму ниже:

Как найти расстояние от точки до прямой

Обновлено 13 декабря 2020 г.

Джон Папевски

Хорошее владение алгеброй поможет вам решать геометрические задачи, например, найти расстояние от точки до линии.Решение включает в себя создание новой перпендикулярной линии, соединяющей точку с исходной линией, затем поиск точки пересечения двух линий и, наконец, вычисление длины новой линии до точки пересечения.

TL; DR (слишком длинный; не читал)

Чтобы найти расстояние от точки до линии, сначала найдите перпендикулярную линию, проходящую через точку. Затем, используя теорему Пифагора, найдите расстояние от исходной точки до точки пересечения двух прямых.

Найдите перпендикулярную линию

Новая линия будет перпендикулярна исходной, то есть две прямые пересекаются под прямым углом. Чтобы определить уравнение для новой линии, вы берете отрицательное значение, обратное наклону исходной линии. Две прямые, одна с наклоном A, а другая с наклоном -1 / A, будут пересекаться под прямым углом. Следующий шаг — подставить точку в уравнение формы пересечения наклона новой линии, чтобы определить ее точку пересечения по оси Y.

В качестве примера возьмем прямую y = x + 10 и точку (1,1).Обратите внимание, что наклон линии равен 1. Отрицательное обратное значение 1 равно -1. Таким образом, наклон новой линии равен -1, поэтому форма пересечения наклона новой линии будет y = -x + B, где B — это число, которое вы еще не знаете. Чтобы найти B, подставьте значения x и y точки в уравнение линии:

y = -x + B \\ 1 = -1 + B \\ 1 + 1 = -1 + 1 + B \\ 2 = B

Теперь у вас есть значение для B.

Уравнение новой линии тогда y = -x + 2.

Определить точку пересечения

Две линии пересекаются, когда их значения y равны.Вы найдете это, приравняв уравнения друг к другу, а затем решив относительно x. Когда вы нашли значение для x, подставьте значение в любое линейное уравнение (не имеет значения, какое из них), чтобы найти точку пересечения.

Продолжая пример, у вас есть исходная строка, y = x + 10, и новая строка, y = -x + 2. Приравняйте два уравнения друг к другу, затем решите для x:

x + 10 = -x + 2 // x + x + 10 = x-x + 2 // 2x + 10 = 2 // 2x = -8 // x = -4 //

Подставьте значение x, чтобы найти y:

Таким образом, точка пересечения равна (-4, 6)

Найти длину новой линии

Длина новой линии между данной точкой и вновь найденной точкой пересечения — это расстояние между этой точкой и исходной точкой. линия.Чтобы найти расстояние, вычтите значения x и y, чтобы получить смещения x и y. Это дает вам противоположные и смежные стороны прямоугольного треугольника; расстояние — это гипотенуза, которую вы найдете с помощью теоремы Пифагора. Сложите квадраты двух чисел и извлеките квадратный корень из результата.

Расстояние от точки до линии

У нас есть общая линия ax + by + c = 0ax + by + c = 0ax + by + c = 0 с именем LLL. Эта прямая имеет наклон −ab- \ frac {a} {b} −ba. У нас также есть общая точка P = (x0, y0) P = (x_0, y_0) P = (x0, y0).Расстояние между линией LLL и точкой PPP можно представить другой линией, перпендикулярной L; L; L; назовем это ТТТ. TTT будет иметь уклон ba \ frac {b} {a} ab, поскольку он перпендикулярен LLL. Теперь, чтобы найти расстояние между точкой PPP и линией L, L, L, мы можем использовать небольшой геометрический трюк и получить другую линию, параллельную LLL, которая проходит через PPP; назовем это SSS. Точно так же у нас может быть другая линия, на этот раз параллельная TTT, которая проходит через начало координат (0,0) (0,0) (0,0); назовем это RRR.

Теперь, когда время рисования закончилось, пора работать.

Во-первых, поскольку SSS проходит через PPP и имеет тот же наклон, что и LLL, его уравнение составляет

y − y0 = −ab (x − x0) ⟹ y = −ax + ax0 + by0b.y — y_0 = — \ dfrac {a} {b} (x — x_0) \ подразумевает y = \ dfrac {-ax + ax_0 + by_0} {b} .y − y0 = −ba (x − x0) ⟹y = b − ax + ax0 + by0.

Линия RRR имеет уравнение

y = bax. y = \ dfrac {b} {a} x.y = ab x.

Итак, линия SSS пересекается с линией RRR, когда

bax = −ax + ax0 + by0b ⟹ x = a (ax0 + by0) a2 + b2.2}}. \ end {align} d = (- a2 + b2ac −a2 + b2a (ax0 + by0)) 2 + (- a2 + b2bc −a2 + b2b (ax0 + by0)) 2 = (a2 + b2) 2 [−a (ax0 + by0 + c)] 2 + [- b (ax0 + by0 + c) v] 2 = (a2 + b2) 2 (a2 + b2 ) (ax0 + by0 + c) 2 = a2 + b2 (ax0 + by0 + c) 2 = a2 + b2 ∣ax0 + by0 + c∣.

Знак абсолютного значения необходим, так как расстояние должно быть положительным значением. 2))`

Знак абсолютного значения необходим, поскольку расстояние должно быть положительным значением, и некоторые комбинации A, m, B, n и C могут давать отрицательное число в числителе.2`

`= (| (-2) (5) + (3) (6) +4 |) / (sqrt (4 + 9)`

`= 3,328`

Вот график ситуации. Мы видим, что наш ответ чуть более 3 единиц является разумным.

Таким образом, требуемое расстояние составляет «3,3» единицы с точностью до 1 десятичного знака.

Пример 2

Найдите расстояние от точки `(-3, 7)` до линии

`y = 6 / 5x + 2`

Ответ

Сначала нам нужно выразить данную строку в стандартной форме.2`

`= (| (6) (- 3) + (- 5) (7) +10 |) / sqrt (36 + 25)`

`= | -5,506 |`

`= 5.506`

Таким образом, требуемое расстояние составляет «5,506» единиц с точностью до 3 десятичных знаков.

Расстояние от точки до линии

Расстояние от точки до линии — Math Open Reference

Расстояние от точки до линии — это кратчайшее расстояние между ними — длина отрезка перпендикулярной линии от прямой до точки.

Попробуй это С помощью ползунков измените формулу линии и перетащите точку C.Обратите внимание на расстояние от точки до линии. Вы также можете перетащить исходную точку на (0,0).

Когда мы говорим о расстоянии от точки до линии, мы имеем в виду кратчайшее расстояние. Если вы рисуете отрезок линии который перпендикулярен линии и заканчивается в точке, длина этого сегмента — это расстояние, которое мы хотим. На рисунке выше это расстояние от C до линии.

Есть много способов рассчитать это расстояние. В этом томе описаны четыре метода:

Метод 1.Когда линия горизонтальная или вертикальная

Если вам повезло и линия ровно горизонтальная или вертикальная (параллельна оси x или y), тогда расстояние вычислить очень просто.

Метод 2. Использование двух линейных уравнений

Из уравнения данной прямой находим уравнение перпендикулярной ей прямой, проходящей через данную точку. (Не работает для вертикальных линий.)

Метод 3. Использование тригонометрии

Расстояние определяется с помощью тригонометрии по образовавшимся углам.

Метод 4. По формуле

Учитывая уравнение прямой в форме наклона-пересечения и координаты точки, формула дает расстояние между ними. (Не работает для вертикальных линий.)

Ограничения

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

Подробнее см. Учебные заметки

Другие темы о координатной геометрии

(C) Открытый справочник по математике, 2011 г.
Все права защищены.

Как инструменты приближения вычисляют расстояние — ArcGIS Pro

Как определяется расстояние

Расстояние между любыми двумя объектами рассчитывается как кратчайшее расстояние между ними, то есть место, где два объекта находятся ближе всего друг к другу. Эта логика применяется к любому инструменту геообработки, который вычисляет расстояние, включая такие инструменты, как Ближайшая, Создать таблицу близости и Пространственное соединение (с параметром БЛИЖАЙШЕЕ совпадение).

Измерения расстояния будут наиболее точными, если входные данные находятся в эквидистантной системе координат проекции.Хотя расчеты расстояния всегда можно выполнить независимо от системы координат, результаты могут быть неточными или даже бессмысленными, если ваши данные находятся в географической системе координат или неправильно выбранной системе координат проекции.

Узнайте больше о системах координат и проекциях

В приведенном ниже обсуждении под расстоянием всегда понимается наименьшее расстояние между двумя объектами.

Особые соображения

  • Несколько элементов могут быть в равной степени ближе всего к другому элементу.Когда это происходит, один из ближайших объектов случайным образом выбирается как самый близкий.
  • Когда один объект содержит или находится внутри другого объекта, расстояние между ними равно нулю.
    • Это означает, что когда объект находится внутри полигона, расстояние между объектом и окружающим полигоном равно нулю.
  • Расстояние между двумя объектами равно нулю, если между ними есть хотя бы одна координата x, y.
    • Это означает, что когда два объекта пересекаются, перекрываются, пересекаются или касаются друг друга, расстояние между ними равно нулю.
  • Расстояние всегда рассчитывается до границы полигонального объекта, а не до центра или центроида полигона.
    • Как отмечалось выше, если объект полностью находится внутри многоугольника, расстояние между объектом и окружающим многоугольником равно нулю.
  • Расстояние между двумя объектами (любого типа) всегда одинаково, независимо от того, до и от какого из них измеряется.

Основные операции для поиска расстояния

Расчет расстояния зависит от типа геометрии пространственных объектов, а также от других факторов, таких как система координат.Однако есть три основных правила, подробно описанных ниже, которые определяют, как рассчитывается расстояние.

  1. Расстояние между двумя точками — это прямая линия, соединяющая точки.
  2. Расстояние от точки до линии — это либо перпендикуляр, либо ближайшая вершина.
  3. Расстояние между полилиниями определяется вершинами сегментов.

Правило 1. Расстояние между двумя точками — это прямая линия, соединяющая точки

На следующем рисунке показано расстояние между двумя точками вместе с несколькими другими ключевыми словами и функциями, используемыми инструментами приближения.

Ключевые слова в выносках выше (IN_FID, NEAR_DIST, NEAR_FID, NEAR_X, NEAR_Y и NEAR_ANGLE) — это поля, добавляемые к выходным данным с помощью инструментов «Создать ближайшую таблицу» и инструментов, а также к входному классу пространственных объектов при запуске инструмента «Рядом».

Многоточечный — многоточечный

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

Кроме того, когда одна из точек многоточечного соединения находится над одной из точек другого многоточечного объекта, расстояние между двумя объектами многоточечного соединения равно нулю. Это относится ко всем составным объектам.

Правило 2: Расстояние от точки до полилинии — это перпендикуляр или ближайшая вершина.

В ArcGIS линейные объекты называются полилиниями. Эти два термина, линия и полилиния, взаимозаменяемы. Полилиния — это упорядоченный набор точек, которые называются вершинами.Отдельная вершина — это вершина. Полилиния может иметь любое количество вершин. Линия, определяемая двумя вершинами, называется отрезком линии или отрезком. Две вершины, определяющие отрезок прямой, называются конечными вершинами.

Точно так же многоугольник — это замкнутая область, определяемая одной или несколькими полилиниями.

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

Укажите на полилинию

Если полилиния имеет только один линейный сегмент, для получения расстояния применяется Правило 2.

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

Точка к многоугольнику

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

Расстояние положительно, только если точка находится за пределами многоугольника; в противном случае — ноль.

На приведенном выше рисунке расстояние равно нулю для точек 2 и 3 и положительно для точек 1 и 4.

Правило 3: Расстояние между полилиниями определяется вершинами линейных сегментов

Для двух неточечных объектов, таких как два линейных сегмента:

  1. Расстояние от каждой конечной вершины входного сегмента до ближайшего сегмента рассчитывается с использованием правила 2.
  2. Рассчитывается расстояние от каждой из конечных вершин ближнего сегмента до входного сегмента.
Меньшее из этих двух значений расстояния — это расстояние между двумя сегментами.

Полилиния в полилинию

В простейшем случае предположим, что у обоих полилиний есть по одному сегменту. На рисунке ниже показан перпендикуляр CX от вершины C к отрезку, определяемому вершинами AB. Перпендикуляр к вершине D также может быть вычислен, но его расстояние больше, чем CX.Таким образом, CX — это кратчайшее расстояние от сегмента CD до сегмента AB.

Обратите внимание, что нельзя провести перпендикуляр от вершины A или B к сегменту CD, поэтому кратчайшее расстояние вычисляется от вершин A и B до вершины C. В результате AC — это кратчайшее расстояние от сегмента AB до сегмента CD.

Из двух вычисленных расстояний (AC и CX) CX — это кратчайшее расстояние между двумя сегментами, так как это наименьшее из всех расстояний между вершинами и сегментами.

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

От полилинии к многоугольнику

При вычислении расстояния между полилинией и многоугольником идентифицируются два ближайших сегмента: один от ломаной линии, а другой от последовательности сегментов, составляющих границу многоугольника. Расстояние между этими двумя сегментами рассчитывается в соответствии с процессом, описанным в Правиле 3.

Резюме

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

Связанные темы

Отзыв по этой теме?

Используя R, как рассчитать расстояние от одной точки до линии?

Следует различать, имеем ли мы дело с двумерным или трехмерным случаем.

2D корпус

Если проблема двумерная, положение точек a , b и c может быть определено парами чисел, которые представляют координаты точек x и y .Следующая функция может использоваться для вычисления расстояния d от точки a от линии, определяемой двумя точками b и c :

  dist2d <- function (a, b, c) {
 v1 <- b - c
 v2 <- а - б
 m <- cbind (v1, v2)
 d <- абс (дет (м)) / sqrt (сумма (v1 * v1))
}
  

Вот пример, показывающий, как можно применить функцию:

  ## двухмерный корпус:
а2 <- с (0,2)
Ь2 <- с (2,0)
с2 <- с (1,3)
d2 <- dist2d (a2, b2, c2) # расстояние от точки a до линии (b, c) в 2D
#> d2
# [1] 1.264911
  

3D футляр

В трех измерениях проблема немного сложнее. Мы можем использовать следующие две функции:

  dist3d <- function (a, b, c) {
  v1 <- b - c
  v2 <- а - б
  v3 <- cross3d_prod (v1, v2)
  площадь <- sqrt (сумма (v3 * v3)) / 2
  d <- 2 * площадь / sqrt (сумма (v1 * v1))
}

cross3d_prod <- function (v1, v2) {
  v3 <- вектор ()
  v3 [1] <- v1 [2] * v2 [3] -v1 [3] * v2 [2]
  v3 [2] <- v1 [3] * v2 [1] -v1 [1] * v2 [3]
  v3 [3] <- v1 [1] * v2 [2] -v1 [2] * v2 [1]
  возврат (v3)
}
  

Основная функция для вычисления расстояния может быть вызвана так же, как в предыдущем примере в двух измерениях, с той лишь разницей, что теперь точки определяются тремя координатами, представляющими x , y и z , как показано в примере ниже:

  ## трехмерный футляр:
а3 <- с (0,0,2)
b3 <- c (1,0,0)
c3 <- c (2,3,1)
d3 <- dist3d (a3, b3, c3) # расстояние точки a от линии (b, c) в 3D
#> d3
# [1] 2.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *