Найти расстояние между точками в пространстве. Расстояние между двумя точками плоскости.Системы координат

16.10.2019

Здравствуйте,

Используется PHP:

С уважением, Александр.

Здравствуйте,

Уже достаточное время мучаюсь с проблемой: пытаюсь рассчитать расстояние между двумя произвольными точками, которые находятся на удалении от 30 до 1500 метров друг от друга.

Используется PHP:

$cx=31.319738; //координата x первой точки
$cy=60.901638; //координата y первой точки

$x=31.333312; //координата x второй точки
$y=60.933981; //координата y второй точки

$mx=abs($cx-$x); //высчитываем разницу иксов (первый катет прямоугольного треугольника), функция abs(x) - возвращает модуль числаx x
$my=abs($cy-$y); //высчитываем разницу игреков (второй катет прямоугольного треугольника)

$dist=sqrt(pow($mx,2)+pow($my,2)); //Получаем расстояние до метро (длину гипотенузы по правилу гипотенуза равна корню из суммы квадратов катетов)

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

Я знаю, что это правило хорошо работает для декартовой системы координат, однако, оно должно более-менее работать и через координаты longlat, т.к. измеряемое расстояние между двумя точками пренебрежимо мало (от 30 до 1500 метров).

Однако, расстояние по данному алгоритму вычисляется неверно (например, расстояние1, расчитанное по этому алгоритму, превышает расстояние2 всего на 13%, тогда как в реальности расстояние1 равно 1450 метров, я расстояние2 равно 970 метров, то есть на самом делие разница достигает почти 50%).

Если кто-то сможет помочь, буду очень признателен.

С уважением, Александр.

","contentType":"text/html"},"proposedBody":{"source":"

Здравствуйте,

Уже достаточное время мучаюсь с проблемой: пытаюсь рассчитать расстояние между двумя произвольными точками, которые находятся на удалении от 30 до 1500 метров друг от друга.

Используется PHP:

$cx=31.319738; //координата x первой точки
$cy=60.901638; //координата y первой точки

$x=31.333312; //координата x второй точки
$y=60.933981; //координата y второй точки

$mx=abs($cx-$x); //высчитываем разницу иксов (первый катет прямоугольного треугольника), функция abs(x) - возвращает модуль числаx x
$my=abs($cy-$y); //высчитываем разницу игреков (второй катет прямоугольного треугольника)

$dist=sqrt(pow($mx,2)+pow($my,2)); //Получаем расстояние до метро (длину гипотенузы по правилу гипотенуза равна корню из суммы квадратов катетов)

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

Я знаю, что это правило хорошо работает для декартовой системы координат, однако, оно должно более-менее работать и через координаты longlat, т.к. измеряемое расстояние между двумя точками пренебрежимо мало (от 30 до 1500 метров).

Однако, расстояние по данному алгоритму вычисляется неверно (например, расстояние1, расчитанное по этому алгоритму, превышает расстояние2 всего на 13%, тогда как в реальности расстояние1 равно 1450 метров, я расстояние2 равно 970 метров, то есть на самом делие разница достигает почти 50%).

Если кто-то сможет помочь, буду очень признателен.

С уважением, Александр.

Здравствуйте,

Уже достаточное время мучаюсь с проблемой: пытаюсь рассчитать расстояние между двумя произвольными точками, которые находятся на удалении от 30 до 1500 метров друг от друга.

Используется PHP:

$cx=31.319738; //координата x первой точки
$cy=60.901638; //координата y первой точки

$x=31.333312; //координата x второй точки
$y=60.933981; //координата y второй точки

$mx=abs($cx-$x); //высчитываем разницу иксов (первый катет прямоугольного треугольника), функция abs(x) - возвращает модуль числаx x
$my=abs($cy-$y); //высчитываем разницу игреков (второй катет прямоугольного треугольника)

$dist=sqrt(pow($mx,2)+pow($my,2)); //Получаем расстояние до метро (длину гипотенузы по правилу гипотенуза равна корню из суммы квадратов катетов)

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

Я знаю, что это правило хорошо работает для декартовой системы координат, однако, оно должно более-менее работать и через координаты longlat, т.к. измеряемое расстояние между двумя точками пренебрежимо мало (от 30 до 1500 метров).

Однако, расстояние по данному алгоритму вычисляется неверно (например, расстояние1, расчитанное по этому алгоритму, превышает расстояние2 всего на 13%, тогда как в реальности расстояние1 равно 1450 метров, я расстояние2 равно 970 метров, то есть на самом делие разница достигает почти 50%).

Если кто-то сможет помочь, буду очень признателен.

С уважением, Александр.

","contentType":"text/html"},"authorId":"108613929","slug":"15001","canEdit":false,"canComment":false,"isBanned":false,"canPublish":false,"viewType":"old","isDraft":false,"isOnModeration":false,"isSubscriber":false,"commentsCount":14,"modificationDate":"Wed Jun 27 2012 20:07:00 GMT+0000 (UTC)","showPreview":true,"approvedPreview":{"source":"

Здравствуйте,

Уже достаточное время мучаюсь с проблемой: пытаюсь рассчитать расстояние между двумя произвольными точками, которые находятся на удалении от 30 до 1500 метров друг от друга.

Используется PHP:

$cx=31.319738; //координата x первой точки
$cy=60.901638; //координата y первой точки

$x=31.333312; //координата x второй точки
$y=60.933981; //координата y второй точки

$mx=abs($cx-$x); //высчитываем разницу иксов (первый катет прямоугольного треугольника), функция abs(x) - возвращает модуль числаx x
$my=abs($cy-$y); //высчитываем разницу игреков (второй катет прямоугольного треугольника)

$dist=sqrt(pow($mx,2)+pow($my,2)); //Получаем расстояние до метро (длину гипотенузы по правилу гипотенуза равна корню из суммы квадратов катетов)

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

Я знаю, что это правило хорошо работает для декартовой системы координат, однако, оно должно более-менее работать и через координаты longlat, т.к. измеряемое расстояние между двумя точками пренебрежимо мало (от 30 до 1500 метров).

Однако, расстояние по данному алгоритму вычисляется неверно (например, расстояние1, расчитанное по этому алгоритму, превышает расстояние2 всего на 13%, тогда как в реальности расстояние1 равно 1450 метров, я расстояние2 равно 970 метров, то есть на самом делие разница достигает почти 50%).

Если кто-то сможет помочь, буду очень признателен.

С уважением, Александр.

","html":"Здравствуйте,","contentType":"text/html"},"proposedPreview":{"source":"

Здравствуйте,

Уже достаточное время мучаюсь с проблемой: пытаюсь рассчитать расстояние между двумя произвольными точками, которые находятся на удалении от 30 до 1500 метров друг от друга.

Используется PHP:

$cx=31.319738; //координата x первой точки
$cy=60.901638; //координата y первой точки

$x=31.333312; //координата x второй точки
$y=60.933981; //координата y второй точки

$mx=abs($cx-$x); //высчитываем разницу иксов (первый катет прямоугольного треугольника), функция abs(x) - возвращает модуль числаx x
$my=abs($cy-$y); //высчитываем разницу игреков (второй катет прямоугольного треугольника)

$dist=sqrt(pow($mx,2)+pow($my,2)); //Получаем расстояние до метро (длину гипотенузы по правилу гипотенуза равна корню из суммы квадратов катетов)

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

Я знаю, что это правило хорошо работает для декартовой системы координат, однако, оно должно более-менее работать и через координаты longlat, т.к. измеряемое расстояние между двумя точками пренебрежимо мало (от 30 до 1500 метров).

Однако, расстояние по данному алгоритму вычисляется неверно (например, расстояние1, расчитанное по этому алгоритму, превышает расстояние2 всего на 13%, тогда как в реальности расстояние1 равно 1450 метров, я расстояние2 равно 970 метров, то есть на самом делие разница достигает почти 50%).

Если кто-то сможет помочь, буду очень признателен.

С уважением, Александр.

","html":"Здравствуйте,","contentType":"text/html"},"titleImage":null,"tags":[{"displayName":"измерение расстояний","slug":"izmerenie-rasstoyaniy","categoryId":"10615601","url":"/blog/mapsapi??tag=izmerenie-rasstoyaniy"},{"displayName":"API 1.x","slug":"api-1-x","categoryId":"150000131","url":"/blog/mapsapi??tag=api-1-x"}],"isModerator":false,"commentsEnabled":true,"url":"/blog/mapsapi/15001","urlTemplate":"/blog/mapsapi/%slug%","fullBlogUrl":"https://yandex.ru/blog/mapsapi","addCommentUrl":"/blog/createComment/mapsapi/15001","updateCommentUrl":"/blog/updateComment/mapsapi/15001","addCommentWithCaptcha":"/blog/createWithCaptcha/mapsapi/15001","changeCaptchaUrl":"/blog/api/captcha/new","putImageUrl":"/blog/image/put","urlBlog":"/blog/mapsapi","urlEditPost":"/blog/56a98d48b15b79e31e0d54c8/edit","urlSlug":"/blog/post/generateSlug","urlPublishPost":"/blog/56a98d48b15b79e31e0d54c8/publish","urlUnpublishPost":"/blog/56a98d48b15b79e31e0d54c8/unpublish","urlRemovePost":"/blog/56a98d48b15b79e31e0d54c8/removePost","urlDraft":"/blog/mapsapi/15001/draft","urlDraftTemplate":"/blog/mapsapi/%slug%/draft","urlRemoveDraft":"/blog/56a98d48b15b79e31e0d54c8/removeDraft","urlTagSuggest":"/blog/api/suggest/mapsapi","urlAfterDelete":"/blog/mapsapi","isAuthor":false,"subscribeUrl":"/blog/api/subscribe/56a98d48b15b79e31e0d54c8","unsubscribeUrl":"/blog/api/unsubscribe/56a98d48b15b79e31e0d54c8","urlEditPostPage":"/blog/mapsapi/56a98d48b15b79e31e0d54c8/edit","urlForTranslate":"/blog/post/translate","urlRelateIssue":"/blog/post/updateIssue","urlUpdateTranslate":"/blog/post/updateTranslate","urlLoadTranslate":"/blog/post/loadTranslate","urlTranslationStatus":"/blog/mapsapi/15001/translationInfo","urlRelatedArticles":"/blog/api/relatedArticles/mapsapi/15001","author":{"id":"108613929","uid":{"value":"108613929","lite":false,"hosted":false},"aliases":{},"login":"mrdds","display_name":{"name":"mrdds","avatar":{"default":"0/0-0","empty":true}},"address":"[email protected]","defaultAvatar":"0/0-0","imageSrc":"https://avatars.mds.yandex.net/get-yapic/0/0-0/islands-middle","isYandexStaff":false},"originalModificationDate":"2012-06-27T16:07:49.000Z","socialImage":{"orig":{"fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file_1456488726678/orig"}}}}}">

Определение расстояние между двумя точками ТОЛЬКО по координатам longlat.

$my=abs($cy-$y); //высчитываем разницу игреков (второй катет прямоугольного треугольника)

$dist=sqrt(pow($mx,2)+pow($my,2)); //Получаем расстояние до метро (длину гипотенузы по правилу гипотенуза равна корню из суммы квадратов катетов)

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

Я знаю, что это правило хорошо работает для декартовой системы координат, однако, оно должно более-менее работать и через координаты longlat, т.к. измеряемое расстояние между двумя точками пренебрежимо мало (от 30 до 1500 метров).

Однако, расстояние по данному алгоритму вычисляется неверно (например, расстояние1, расчитанное по этому алгоритму, превышает расстояние2 всего на 13%, тогда как в реальности расстояние1 равно 1450 метров, я расстояние2 равно 970 метров, то есть на самом делие разница достигает почти 50%).

Если кто-то сможет помочь, буду очень признателен.

С уважением, Александр.

Пусть задана прямоугольная система координат.

Теорема 1.1. Для любых двух точек М 1 (х 1 ;у 1) и М 2 (х 2 ;у 2) плоскости расстояние d между ними выражается формулой

Доказательство. Опустим из точек М 1 и М 2 перпендикуляры М 1 В и М 2 А соответственно

на оси Оу и Ох и обозначим через К точку пересечения прямых М 1 В и М 2 А (рис. 1.4). Возможны следующие случаи:

1)Точки М 1 , М 2 и К различны. Очевидно, что точка К имеет координаты (х 2 ;у 1). Нетрудно заметить что М 1 К = ôх 2 – х 1 ô, М 2 К = ôу 2 – у 1 ô. Т.к. ∆М 1 КМ 2 прямоугольный, то по теореме Пифагора d = М 1 М 2 = = .

2) Точка К совпадает с точкой М 2 , но отлична от точки М 1 (рис. 1.5). В этом случае у 2 = у 1

и d = М 1 М 2 = М 1 К = ôх 2 – х 1 ô= =

3) Точка К совпадает с точкой М 1 , но отлична от точки М 2 . В этом случае х 2 = х 1 и d =

М 1 М 2 = КМ 2 = ôу 2 - у 1 ô= = .

4) Точка М 2 совпадает с точкой М 1 . Тогда х 1 = х 2 , у 1 = у 2 и

d = М 1 М 2 = О = .

Деление отрезка в данном отношении.

Пусть на плоскости дан произвольный отрезок М 1 М 2 и пусть М ─ любая точка этого

отрезка, отличная от точки М 2 (рис. 1.6). Число l, определяемое равенством l = , называется отношением, в котором точка М делит отрезок М 1 М 2 .

Теорема 1.2. Если точка М(х;у) делит отрезок М 1 М 2 в отношении l, то координаты этой определяются формулами

х = , у = , (4)

где (х 1 ;у 1) ─ координаты точки М 1 , (х 2 ;у 2) ─ координаты точки М 2 .

Доказательство. Докажем первую из формул (4). Вторая формула доказывается аналогично. Возможны два случая.

х = х 1 = = = .

2) Прямая М 1 М 2 не перпендикулярна оси Ох (рис. 1.6). Опустим перпендикуляры из точек М 1 , М, М 2 на ось Ох и обозначим точки их пересечения с осью Ох соответственно Р 1 , Р, Р 2 . По теореме о пропорциональных отрезках = l.

Т.к. Р 1 Р = ôх – х 1 ô, РР 2 = ôх 2 – хô и числа (х – х 1) и (х 2 – х) имеют один и тот же знак (при х 1 < х 2 они положительны, а при х 1 > х 2 отрицательны), то

l = = ,

х – х 1 = l(х 2 – х), х + lх = х 1 + lх 2 ,

х = .

Следствие 1.2.1. Если М 1 (х 1 ;у 1) и М 2 (х 2 ;у 2) ─ две произвольные точки и точка М(х;у) ─ середина отрезка М 1 М 2 , то

х = , у = (5)

Доказательство. Так как М 1 М = М 2 М, то l = 1 и по формулам (4) получаем формулы (5).

Площадь треугольника.

Теорема 1.3. Для любых точек А(х 1 ;у 1), В(х 2 ;у 2) и С(х 3 ;у 3), не лежащих на одной

прямой, площадь S треугольника АВС выражается формулой

S = ô(х 2 – х 1)(у 3 – у 1) – (х 3 – х 1)(у 2 – у 1)ô (6)

Доказательство. Площадь ∆ АВС, изображённого на рис. 1.7, вычисляем следующим

S ABC = S ADEC + S BCEF – S ABFD .

Вычисляем площади трапеций:

S ADEC =
,

S BCEF =

S ABFD =

Теперь имеем

S ABC = ((х 3 – х 1)(у 3 + у 1) + (х 3 – х 2)(у 3 + у 2) - (х 2 – -х 1)(у 1 + у 2)) = (х 3 у 3 – х 1 у 3 + х 3 у 1 – х 1 у 1 + + х 2 у 3 – -х 3 у 3 + х 2 у 2 – х 3 у 2 – х 2 у 1 + х 1 у 1 – х 2 у 2 + х 1 у 2) = (х 3 у 1 – х 3 у 2 + х 1 у 2 – х 2 у 1 + х 2 у 3 –

Х 1 у 3) = (х 3 (у 1 – у 2) + х 1 у 2 – х 1 у 1 + х 1 у 1 – х 2 у 1 + у 3 (х 2 – х 1)) = (х 1 (у 2 – у 1) – х 3 (у 2 – у 1) + +у 1 (х 1 – х 2) – у 3 (х 1 – х 2)) = ((х 1 – х 3)(у 2 – у 1) + (х 1 – х 2)(у 1 – у 3)) = ((х 2 – х 1)(у 3 – у 1) –

- (х 3 – х 1)(у 2 – у 1)).

Для другого расположения ∆ АВС формула (6) доказывается аналогично, но может получиться со знаком «-». Поэтому в формуле (6) ставят знак модуля.


Лекция 2.

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

2.1. Пусть на плоскости задана прямоугольная система координат и некоторая линия L.

Определение 2.1. Уравнение вида F(x;y) = 0, связывающее переменные величины x и y, называется уравнение линии L (в заданной системе координат), если этому уравнению удовлетворяют координаты любой точки, лежащей на линии L, и не удовлетворяют координаты никакой точки, не лежащей на этой прямой.

Примеры уравнений линий на плоскости.

1) Рассмотрим прямую, параллельную оси Oy прямоугольной системы координат (рис. 2.1). Обозначим буквой A точку пересечения этой прямой с осью Ox, (a;o) ─ её ор-

динаты. Уравнение x = a является уравнением данной прямой. Действительно, этому уравнению удовлетворяют координаты любой точки M(a;y) этой прямой и не удовлетворяют координаты ни одной точки, не лежащей на прямой. Если a = 0, то прямая совпадает с осью Oy, которая имеет уравнение x = 0.

2) Уравнение x - y = 0 определяет множество точек плоскости, составляющих биссектрисы I и III координатных углов.

3) Уравнение x 2 - y 2 = 0 ─ это уравнение двух биссектрис координатных углов.

4) Уравнение x 2 + y 2 = 0 определяет на плоскости единственную точку O(0;0).

5) Уравнение x 2 + y 2 = 25 ─ уравнение окружности радиуса 5 с центром в начале координат.

Расстояние между двумя точками плоскости.
Системы координат

Каждая точка А плоскости характеризуется своими координатами (х, у). Они совпадают с координатами вектора 0А , выходящего из точки 0 - начала координат.

Пусть А и В - произвольные точки плоскости с координатами (х 1 y 1) и (х 2 , у 2) соответственно.

Тогда вектор AB имеет, очевидно, координаты (х 2 - х 1 , y 2 - y 1). Известно, что квадрат длины вектора равен сумме квадратов его координат. Поэтому расстояние d между точками А и В, или, что то же самое, длина вектора АВ, определяется из условия

d 2 = (х 2 - х 1) 2 + (y 2 - y 1) 2 .

d = \/ (х 2 - х 1 ) 2 + (y 2 - y 1 ) 2

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

Каждый раз, говоря о координатах той или иной точки плоскоси, мы имеем в виду вполне определенную систему координат х0у. А вообще-то систему координат на плоскости можно выбирать по-разному. Так, вместо системы координат х0у можно рассмотреть систему координат х"0у" , которая получается в результате поворота старых осей координат вокруг начальной точки 0 против часовой стрелки на угол α .

Если некоторая точка плоскости в системе координат х0у имела координаты (х, у), то в новой системе координат х"0у" она будет иметь уже другие координаты (х", у").

В качестве примера рассмотрим точку М, расположенную на оси 0х" и отстоящую от точки 0 на расстоянии, равном 1.

Очевидно, что в системе координат x0у эта точка имеет координаты (cos α , sin α ), а в системе координат х"0у" координаты (1,0).

Координаты любых двух точек плоскости А и В зависят от того, как в этой плоскости задана система координат. А вот расстояние между этими точками не зависит от способа задания системы координат. Это важное обстоятельство будет существенно использовано нами в следующем параграфе.

Упражнения

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

1) (3,5) и (3,4); 3) (0,5) и (5, 0); 5) (-3,4) и (9, -17);

2) (2, 1) и (- 5, 1); 4) (0, 7) и (3,3); 6) (8, 21) и (1, -3).

II. Найти периметр треугольника, стороны которого заданы уравнениями:

x + у - 1 = 0, 2x - у - 2 = 0 и у = 1.

III. В системе координат х0у точки М и N имеют координаты (1, 0) и (0,1) соответственно. Найти координаты этих точек в новой системе координат, которая получается и результате поворота старых осей вокруг начальной точки на угол в 30° против часовой стрелки.

IV. В системе координат х0у точки М и N имеют координаты (2, 0) и (\/ 3 / 2 , - 1 / 2) соответственно. Найти координаты этих точек в новой системе координат, которая получается в результате поворота старых осей вокруг начальной точки на угол в 30° по часовой стрелке.



Похожие статьи
 
Категории