Как найти расстояние от точки до границы

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

Ситуация относительно проста, если точки лежат на одном меридиане. Все меридианы имеют одинаковую длину. Можно подсчитать, что одному градусу широты соответствует примерно 111,3 км реальной длины. Поэтому надо найти разницу в долготе между точками и умножить ее на 111,3 км. Например, если точка А находится на северной широте 50°, а Б располагается на северной широте 32°, и при этом у них совпадает долгота, то расстояние между ними составит.

111,3х(50° – 32°) = 111,3х16 = 1780,8 км

Ситуация меняется, когда одна точка имеет северную, а другая – южную широту. В этом случае широты уже надо складывать. Так, если бы точка Б из предыдущего примера располагалась бы на южной широте 32°, то расстояние от А до Б составило бы:

111,3х(50° + 32°) = 111,3х82 = 9126,6 км

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

Широта параллели Длина ее дуги величиной в 1°
111,3
110,9
10° 109,6
15° 107,6
20° 104,6
25° 102,1
30° 96,5
35° 91,3
40° 85,4
45° 78,8
50° 71,7
55° 64,0
60° 55,8
65° 47,2
70° 38,2
75° 28,9
80° 19,4
85° 9,7
90° 0

Например, нужно найти расстояние между точками, имеющими координаты:

А – 60° с. ш, 39° з. д.
Б – 60° с. ш, 25° з. д.

Широты у них одинаковы, поэтому смотрим на долготу. Она у обеих точек западная, поэтому надо найти их разницу:

39° – 25° = 14°

Полученный результат надо умножить на длину 1° параллели, широта которой составляет 60°. По табличке определяем, что на широте 60° дуга в 1° имеет длину 55,8 км. Перемножаем два числа:

14°х 55,8 км = 781,2 км

Список использованных источников

• https://www.yaklass.ru/p/geografiya/5-klass/izobrazheniia-zemnoi-poverkhnosti-i-ikh-ispolzovanie-131512/geograficheskie-koordinaty-161116/re-d77ff3cc-0858-4fd8-aabd-69f1fdffb41d
• https://interneturok.ru/lesson/geografy/5-klass/plan-i-karta/gradusnaya-setka-geograficheskaya-dolgota-i-shirota

Гугломаг

Гугломаг

Спрашивай! Не стесняйся!

Задать вопрос

Не все нашли? Используйте поиск по сайту

Длина отрезка. Расстояние между точками: онлайн-калькулятор

Чтобы найти расстояние между точками (длину отрезка) онлайн, необходимо:

  1. Задать размерность (плоскость или пространство).
  2. Ввести в поля координаты точек.
  3. Нажать «рассчитать».

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

Для нахождения длины отрезка по координатам существует формула. Для отрезка AB в трехмерном пространстве она имеет вид:

d=xb-xa2+yb-ya2+zb-za2

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

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

My answer is slightly longer than the others, but it comes from a different perspective.

The key isn’t if you’re inside the rectangle, but if you’re anywhere within the corridors defined by taking the sides of the rectangle and extending them infinitely (picture an infinite plus sign, centered on the rectangle).

If it’s inside those corridors, then the closest distance is orthogonal to one of the sides.

If it’s outside, then the closest distance is the distance to the nearest corner.

Your code could look like this:

nearest_distance(rectangle, point):
    d_top = abs(rectangle.top - point.y)
    d_bottom = abs(rectangle.bottom - point.y)
    corner_y = d_top < d_bottom ? rectangle.top : rectangle.bottom

    d_left = abs(rectangle.left - point.x)
    d_right = abs(rectangle.right - point.x)
    corner_x = d_left < d_right ? rectangle.left : rectangle.right

    d_cx = corner_x - point.x
    d_cy = corner_y - point.y
    d_corner = sqrt(d_cx*d_cx + d_cy*d_cy)

    return min(d_top, d_bottom, d_left, d_right, d_corner)

If you wanted to try to save a sqrt, you could check if you’re inside the corridors vs. outside of them. In that case, you would rearrange it as follows:

nearest_distance(rectangle, point):
    d_top = abs(rectangle.top - point.y)
    d_bottom = abs(rectangle.bottom - point.y)
    d_left = abs(rectangle.left - point.x)
    d_right = abs(rectangle.right - point.x)

    r = rectangle # just to make the next line neater
    if r.left <= point.x <= r.right or r.bottom <= point.y <= r.top:
        return min(d_top, d_bottom, d_left, d_right)
    else:
        corner_y = d_top < d_bottom ? rectangle.top : rectangle.bottom
        corner_x = d_left < d_right ? rectangle.left : rectangle.right

        d_cx = corner_x - point.x
        d_cy = corner_y - point.y
        d_corner = sqrt(d_cx*d_cx + d_cy*d_cy)
        return d_corner

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

1. Увеличить радиус на 1 условную единицу (пиксель).
2. Если окружность не пересекает фигуру, перейти к шагу 1.
3. Если возможно сдвинуть центр окружности на 1 условную единицу так, что окружность не будет пересекать фигуру, сдвинуть центр и перейти к шагу 1.

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

Алгоритм будет работать довольно медленно, но других вариантов я не знаю.

P.S. По сути, это всё равно, что надувать воздушный шарик внутри коробки. Сначала мы можем разместить его где угодно, но потом, надуваясь, он сам займёт верное положение.

P.P.S. Как альтернативный вариант, можно создать матрицу, в элемент M[i][j] которой записать расстояние от точки с координатами (i, j) до ближайшей точки фигуры. Потом просто найти максимальное в матрице.

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

2.1. Определение расстояния от точки до другой точки

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

Задача
9.
Найти
натуральную величину отрезка прямой
АВ общего положения способом прямоугольного
треугольника.

Решение.
Построим ортогональную проекцию отрезка
общего положения АВ на горизонтальной
плоскости проекций (рис. 12, а). В пространстве
образуется треугольник А1ВВ1,
в котором гипотенузой является сам
отрезок, одним катетом – горизонтальная
проекция этого отрезка, а вторым катетом
– разность высот точек А и В отрезка.

По
чертежу прямой определяем Δz
точек ее отрезка и строим по горизонтальной
проекции отрезка (рис. 12, б) прямоугольный
треугольник. Гипотенуза этого треугольника
будет натуральной величиной отрезка
АВ. Аналогичное построение можно сделать
на фронтальной проекции отрезка. В
качестве второго катета берем Δy
(рис. 12, в) с плоскости П1.

а б в

Рис.
12. Определение расстояния между точками

2.2. Определение расстояния от точки до прямой

Расстояние
от точки до прямой
можно определить
одним из следующих способов:

1)
прямым путем: провести через точку
плоскость, перпендикулярную к прямой,
найти пересечение заданной прямой с
этой плоскостью и определить длину
отрезка между точками – найденной и
заданной;

2)
вращением привести заданную систему в
положение, когда заданная прямая
перпендикулярна какой-либо плоскости
проекций, или плоскость, определяемая
прямой и точкой, параллельна какой-либо
плоскости проекций;

3)
совмещением: найти один из следов
плоскости, заданной прямой и точкой, и
вращением около этого следа найти
совмещенное положение точки и прямой;

4)
вращением вокруг горизонтали или
фронтали: провести через горизонталь
(фронталь) плоскости, определяемой
заданными элементами, плоскость R,
параллельную горизонтальной (вертикальной)
плоскости проекций, и вращением вокруг
горизонтали (фронтали) найти совмещенное
положение точки и прямой на этой
плоскости;

5)
заменой плоскостей проекций: заменить
плоскости проекций новыми, чтобы одна
из них была перпендикулярна заданной
прямой или параллельна плоскости,
определяемой прямой и точкой.

Задача
10
. Определить
расстояние от точки М до прямой АВ
методом замены.

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

Решение.
Расстояние
от точки до прямой
измеряется отрезком нормали, проведенной
из точки к заданной прямой. Определим
расстояние от точки М до плоскостей
проекций прямой АВ (рис. 13).

1)
П2
П1,
П1
П4,
П4 || А4В4,
П14
|| A1B1;

2)
А4В4
М4К4,
П5
AB,
П45
A4B4;

3)
M5K5
– истинное расстояние от точки М до
прямой AB.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

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