Разстоянието между две точки по техните координати. Разстояние от точка до точка, формули, примери, решения

Изчисляването на разстояния между точки въз основа на техните координати в равнина е елементарно; на повърхността на Земята е малко по-сложно: ще разгледаме измерването на разстоянието и началния азимут между точките без трансформации на проекцията. Първо, нека разберем терминологията.

Въведение

Голяма дължина на дъгата на кръга– най-късото разстояние между всеки две точки, разположени на повърхността на сфера, измерено по линията, свързваща тези две точки (такава линия се нарича ортодромия) и минаваща по повърхността на сферата или друга повърхност на въртене. Сферичната геометрия е различна от нормалната евклидова геометрия и уравненията на разстоянието също имат различна форма. В евклидовата геометрия най-късото разстояние между две точки е права линия. На сфера няма прави линии. Тези линии на сферата са част от големи кръгове - кръгове, чиито центрове съвпадат с центъра на сферата. Начален азимут- азимут, който при започване на движение от точка А, следвайки големия кръг за най-късото разстояние до точка Б, крайната точка ще бъде точка В. При движение от точка А до точка Б по линията на големия кръг, азимутът от текущата позиция до крайна точка B е постоянна, променя се. Началният азимут е различен от постоянен, след което азимутът от текущата до крайната точка не се променя, но следваният маршрут не е най-късото разстояние между две точки.

През всеки две точки от повърхността на една сфера, ако те не са точно срещуположни една на друга (т.е. не са антиподи), може да се начертае уникален голям кръг. Две точки разделят голям кръг на две дъги. Дължината на къса дъга е най-късото разстояние между две точки. Безкраен брой големи кръгове могат да бъдат начертани между две противоположни точки, но разстоянието между тях ще бъде еднакво във всеки кръг и равно на половината от обиколката на кръга, или π*R, където R е радиусът на сферата.

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

Формата на Земята може да се опише като сфера, така че уравненията за голямо кръгово разстояние са важни за изчисляване на най-късото разстояние между точки на земната повърхност и често се използват в навигацията. Изчисляването на разстоянието по този метод е по-ефективно и в много случаи по-точно от изчисляването му за проектирани координати (в правоъгълни координатни системи), тъй като, първо, не изисква преобразуване на географски координати в правоъгълна координатна система (извършване на проекционни трансформации) и , второ, много проекции, ако са избрани неправилно, могат да доведат до значителни изкривявания на дължината поради естеството на проекционните изкривявания. Известно е, че не е сфера, а елипсоид, който описва по-точно формата на Земята, но в тази статия се обсъжда изчисляването на разстояния конкретно върху сфера за изчисления, използва се сфера с радиус 6 372 795 метра , което може да доведе до грешка при изчисляване на разстояния от порядъка на 0,5%.

Формули

Има три начина за изчисляване на сферичното разстояние на големия кръг. 1. Теорема за сферичен косинусВ случай на малки разстояния и малка дълбочина на изчисление (брой знаци след десетичната запетая), използването на формулата може да доведе до значителни грешки при закръгляване. φ1, λ1; φ2, λ2 - ширина и дължина на две точки в радиани Δλ - разлика в координатите в дължина Δδ - ъглова разлика Δδ = arccos (sin φ1 sin φ2 + cos φ1 cos φ2 cos Δλ) За да преобразувате ъгловото разстояние в метрика, трябва да умножете ъгловата разлика по радиуса на Земята (6372795 метра), единиците за крайното разстояние ще бъдат равни на единиците, в които е изразен радиусът (в този случай метри). 2. Формула на хаверсинусИзползва се за избягване на проблеми с къси разстояния. 3. Модификация за антиподитеПредходната формула също е предмет на проблема с антиподните точки, използва се следната модификация.

Моята реализация на PHP

// Дефиниране на радиуса на Земята ("EARTH_RADIUS", 6372795); /* * Разстояние между две точки * $φA, $λA - ширина, дължина на 1-ва точка, * $φB, $λB - ширина, дължина на 2-ра точка * Написано на базата на http://gis-lab.info/ qa/great-circles.html * Михаил Кобзарев * */ функция изчисляванеРазстоянието ($φA, $λA, $φB, $λB) ( // конвертиране на координатите в радиани $lat1 = $φA * M_PI / 180; $lat2 = $φB * M_PI / 180; $long1 = $λB * M_PI / 180; $cl1 = cos($lat1); $sl1 = sin( $lat1); $delta = cos($delta); голяма окръжност $y = sqrt($cl2 * $sdelta, 2) + pow($cl1 * $sl2 - $ sl1 * $cl2 * $cdelta; // $ad = $ad * EARTH_RADIUS; ) Пример за a извикване на функция: $lat1 = 77.1539; $long1 = -139,398; $lat2 = -77.1804; $long2 = -139,55; ехо изчисляванеРазстоянието($lat1, $long1, $lat2, $long2) . "метри"; // Връщане на "17166029 метра"

Решаването на задачи по математика често е съпроводено с много трудности за учениците. Основната цел на нашия сайт е да помогнем на ученика да се справи с тези трудности, както и да го научим да прилага съществуващите теоретични знания при решаване на конкретни задачи във всички раздели на курса по предмета „Математика“.

При започване на решаването на задачи по темата учениците трябва да могат да построяват точка от равнина по нейните координати, както и да намират координатите на дадена точка.

Изчисляването на разстоянието между две точки A(x A; y A) и B(x B; y B), взети в равнина, се извършва по формулата d = √((x A – x B) 2 + (y A – y B) 2), където d е дължината на отсечката, която свързва тези точки в равнината.

Ако един от краищата на сегмента съвпада с началото на координатите, а другият има координати M(x M; y M), тогава формулата за изчисляване на d ще приеме формата OM = √(x M 2 + y M 2 ).

1. Изчисляване на разстоянието между две точки по дадените координати на тези точки

Пример 1.

Намерете дължината на отсечката, която свързва точките A(2; -5) и B(-4; 3) на координатната равнина (фиг. 1).

Решение.

Постановката на задачата гласи: x A = 2; x B = -4; y A = -5 и y B = 3. Намерете d.

Прилагайки формулата d = √((x A – x B) 2 + (y A – y B) 2), получаваме:

d = AB = √((2 – (-4)) 2 + (-5 – 3) 2) = 10.

2. Изчисляване на координатите на точка, която е на равно разстояние от три дадени точки

Пример 2.

Намерете координатите на точка O 1, която е на еднакво разстояние от три точки A(7; -1) и B(-2; 2) и C(-1; -5).

Решение.

От формулировката на условията на задачата следва, че O 1 A = O 1 B = O 1 C. Нека желаната точка O 1 има координати (a; b). Използвайки формулата d = √((x A – x B) 2 + (y A – y B) 2) намираме:

O 1 A = √((a – 7) 2 + (b + 1) 2);

O 1 B = √((a + 2) 2 + (b – 2) 2);

O 1 C = √((a + 1) 2 + (b + 5) 2).

Нека създадем система от две уравнения:

(√((a – 7) 2 + (b + 1) 2) = √((a + 2) 2 + (b – 2) 2),
(√((a – 7) 2 + (b + 1) 2) = √((a + 1) 2 + (b + 5) 2).

След като повдигнем на квадрат лявата и дясната страна на уравненията, записваме:

((a – 7) 2 + (b + 1) 2 = (a + 2) 2 + (b – 2) 2,
((a – 7) 2 + (b + 1) 2 = (a + 1) 2 + (b + 5) 2.

Опростено, нека пишем

(-3a + b + 7 = 0,
(-2a – b + 3 = 0.

След като решихме системата, получаваме: a = 2; b = -1.

Точка O 1 (2; -1) е на еднакво разстояние от трите точки, посочени в условието, които не лежат на една и съща права линия. Тази точка е центърът на окръжност, минаваща през три дадени точки (фиг. 2).

3. Изчисляване на абсцисата (ординатата) на точка, която лежи на абсцисната (ординатната) ос и е на дадено разстояние от дадена точка

Пример 3.

Разстоянието от точка B(-5; 6) до точка A, лежаща на оста Ox, е 10. Намерете точка A.

Решение.

От формулировката на условията на задачата следва, че ординатата на точка А е равна на нула и AB = 10.

Означавайки абсцисата на точка A с a, пишем A(a; 0).

AB = √((a + 5) 2 + (0 – 6) 2) = √((a + 5) 2 + 36).

Получаваме уравнението √((a + 5) 2 + 36) = 10. Опростявайки го, имаме

a 2 + 10a – 39 = 0.

Корените на това уравнение са a 1 = -13; и 2 = 3.

Получаваме две точки A 1 (-13; 0) и A 2 (3; 0).

Преглед:

A 1 B = √((-13 + 5) 2 + (0 – 6) 2) = 10.

A 2 B = √((3 + 5) 2 + (0 – 6) 2) = 10.

И двете получени точки са подходящи според условията на задачата (фиг. 3).

4. Изчисляване на абсцисата (ординатата) на точка, която лежи на абсцисната (ординатната) ос и се намира на еднакво разстояние от две дадени точки

Пример 4.

Намерете точка на оста Oy, която е на същото разстояние от точки A (6, 12) и B (-8, 10).

Решение.

Нека координатите на изискваната от условията на задачата точка, лежаща на оста Oy, са O 1 (0; b) (в точката, лежаща на оста Oy, абсцисата е нула). От условието следва, че O 1 A = O 1 B.

Използвайки формулата d = √((x A – x B) 2 + (y A – y B) 2) намираме:

O 1 A = √((0 – 6) 2 + (b – 12) 2) = √(36 + (b – 12) 2);

O 1 B = √((a + 8) 2 + (b – 10) 2) = √(64 + (b – 10) 2).

Имаме уравнението √(36 + (b – 12) 2) = √(64 + (b – 10) 2) или 36 + (b – 12) 2 = 64 + (b – 10) 2.

След опростяване получаваме: b – 4 = 0, b = 4.

Точка O 1 (0; 4), изисквана от условията на задачата (фиг. 4).

5. Изчисляване на координатите на точка, която се намира на същото разстояние от координатните оси и дадена точка

Пример 5.

Намерете точка M, разположена на координатната равнина на същото разстояние от координатните оси и от точка A(-2; 1).

Решение.

Търсената точка M, подобно на точка A(-2; 1), се намира във втория координатен ъгъл, тъй като е на еднакво разстояние от точките A, P 1 и P 2 (фиг. 5). Разстоянията на точка M от координатните оси са еднакви, следователно нейните координати ще бъдат (-a; a), където a > 0.

От условията на задачата следва, че MA = MR 1 = MR 2, MR 1 = a; MP 2 = |-a|,

тези. |-a| = а.

Използвайки формулата d = √((x A – x B) 2 + (y A – y B) 2) намираме:

MA = √((-а + 2) 2 + (а – 1) 2).

Нека съставим уравнение:

√((-а + 2) 2 + (а – 1) 2) = а.

След повдигане на квадрат и опростяване имаме: a 2 – 6a + 5 = 0. Решете уравнението, намерете a 1 = 1; и 2 = 5.

Получаваме две точки M 1 (-1; 1) и M 2 (-5; 5), които удовлетворяват условията на задачата.

6. Изчисляване на координатите на точка, която се намира на едно и също определено разстояние от абсцисната (ординатната) ос и от дадената точка

Пример 6.

Намерете точка M, така че нейното разстояние от ординатната ос и от точка A(8; 6) да е равно на 5.

Решение.

От условията на задачата следва, че MA = 5 и абсцисата на точка M е равна на 5. Нека ординатата на точка M е равна на b, тогава M(5; b) (фиг. 6).

Съгласно формулата d = √((x A – x B) 2 + (y A – y B) 2) имаме:

MA = √((5 – 8) 2 + (b – 6) 2).

Нека съставим уравнение:

√((5 – 8) 2 + (b – 6) 2) = 5. Опростявайки го, получаваме: b 2 – 12b + 20 = 0. Корените на това уравнение са b 1 = 2; b 2 = 10. Следователно има две точки, които отговарят на условията на задачата: M 1 (5; 2) и M 2 (5; 10).

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

Все още имате въпроси? Не знаете как да намерите разстоянието между две точки на равнина?
За да получите помощ от учител -.
Първият урок е безплатен!

blog.site, при пълно или частично копиране на материал е необходима връзка към първоизточника.

Разстоянието между две точки на равнина.
Координатни системи

Всяка точка А от равнината се характеризира със своите координати (x, y). Те съвпадат с координатите на вектора 0A, излизащ от точка 0 - началото на координатите.

Нека A и B са произволни точки от равнината с координати (x 1 y 1) и (x 2, y 2), съответно.

Тогава векторът AB очевидно има координати (x 2 - x 1, y 2 - y 1). Известно е, че квадратът на дължината на вектор е равен на сумата от квадратите на неговите координати. Следователно разстоянието d между точките A и B или, което е същото, дължината на вектора AB, се определя от условието

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

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

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

Всеки път, когато говорим за координатите на определена точка от равнината, имаме предвид точно дефинирана координатна система x0y. Като цяло координатната система на равнината може да бъде избрана по различни начини. Така че, вместо координатната система x0y, можете да разгледате координатната система x"0y", която се получава чрез завъртане на старите координатни оси около началната точка 0 обратно на часовниковата стрелкастрелки на ъгъла α .

Ако определена точка от равнината в координатната система x0y има координати (x, y), то в новата координатна система x"0y" тя ще има различни координати (x, y").

Като пример, разгледайте точка M, разположена на оста 0x и отделена от точка 0 на разстояние 1.

Очевидно в координатната система x0y тази точка има координати (cos α , грях α ), а в координатната система x"0y" координатите са (1,0).

Координатите на всеки две точки от равнината A и B зависят от това как е зададена координатната система в тази равнина. Но разстоянието между тези точки не зависи от метода на определяне на координатната система. Ще се възползваме значително от това важно обстоятелство в следващия параграф.

Упражнения

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 + y - 1 = 0, 2x - y - 2 = 0 и y = 1.

III. В координатната система x0y точките M и N имат съответно координати (1, 0) и (0,1). Намерете координатите на тези точки в новата координатна система, която се получава чрез завъртане на старите оси около началната точка на ъгъл 30° обратно на часовниковата стрелка.

IV. В координатната система x0y точките M и N имат координати (2, 0) и (\ / 3/2, - 1/2) съответно. Намерете координатите на тези точки в новата координатна система, която се получава чрез завъртане на старите оси около началната точка на ъгъл 30° по часовниковата стрелка.

Здравейте,

Използван PHP:

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

Здравейте,

От доста време се боря с проблем: Опитвам се да изчисля разстоянието между две произволни точки, които се намират на разстояние от 30 до 1500 метра една от друга.

Използван PHP:

$cx=31,319738; //x координата на първата точка
$cy=60,901638; //y координата на първата точка

$x=31,333312; //x координата на втората точка
$y=60,933981; //y координата на втората точка

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

$dist=sqrt(pow($mx,2)+pow($my,2)); //Вземете разстоянието до метрото (дължината на хипотенузата според правилото, хипотенузата е равна на корена от сбора на квадратите на катетите)

Ако не е ясно, нека обясня: представям си, че разстоянието между две точки е хипотенузата на правоъгълен триъгълник. Тогава разликата между X на всяка от двете точки ще бъде единият катет, а другият катет ще бъде разликата на Y на същите две точки. След това, като изчислите разликите между X и Y, можете да използвате формулата, за да изчислите дължината на хипотенузата (т.е. разстоянието между две точки).

Знам, че това правило работи добре за декартовата координатна система, но повече или по-малко трябва да работи чрез 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); //изчисляване на разликата в x (първия катет на правоъгълен триъгълник), функция abs(x) - връща модула на числото x x
$my=abs($cy-$y); //изчислете разликата между играчите (вторият катет на правоъгълния триъгълник)

$dist=sqrt(pow($mx,2)+pow($my,2)); //Вземете разстоянието до метрото (дължината на хипотенузата според правилото, хипотенузата е равна на корена от сбора на квадратите на катетите)

Ако не е ясно, нека обясня: представям си, че разстоянието между две точки е хипотенузата на правоъгълен триъгълник. Тогава разликата между X на всяка от двете точки ще бъде единият катет, а другият катет ще бъде разликата на Y на същите две точки. След това, като изчислите разликите между X и Y, можете да използвате формулата, за да изчислите дължината на хипотенузата (т.е. разстоянието между две точки).

Знам, че това правило работи добре за декартовата координатна система, но повече или по-малко трябва да работи чрез 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); //изчисляване на разликата в x (първия катет на правоъгълен триъгълник), функция abs(x) - връща модула на числото x x
$my=abs($cy-$y); //изчислете разликата между играчите (вторият катет на правоъгълния триъгълник)

$dist=sqrt(pow($mx,2)+pow($my,2)); //Вземете разстоянието до метрото (дължината на хипотенузата според правилото, хипотенузата е равна на корена от сбора на квадратите на катетите)

Ако не е ясно, нека обясня: представям си, че разстоянието между две точки е хипотенузата на правоъгълен триъгълник. Тогава разликата между X на всяка от двете точки ще бъде единият катет, а другият катет ще бъде разликата на Y на същите две точки. След това, като изчислите разликите между X и Y, можете да използвате формулата, за да изчислите дължината на хипотенузата (т.е. разстоянието между две точки).

Знам, че това правило работи добре за декартовата координатна система, но повече или по-малко трябва да работи чрез 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":"сряда, 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); //изчисляване на разликата в x (първия катет на правоъгълен триъгълник), функция abs(x) - връща модула на числото x x
$my=abs($cy-$y); //изчислете разликата между играчите (вторият катет на правоъгълния триъгълник)

$dist=sqrt(pow($mx,2)+pow($my,2)); //Вземете разстоянието до метрото (дължината на хипотенузата според правилото, хипотенузата е равна на корена от сбора на квадратите на катетите)

Ако не е ясно, нека обясня: представям си, че разстоянието между две точки е хипотенузата на правоъгълен триъгълник. Тогава разликата между X на всяка от двете точки ще бъде единият катет, а другият катет ще бъде разликата на Y на същите две точки. След това, като изчислите разликите между X и Y, можете да използвате формулата, за да изчислите дължината на хипотенузата (т.е. разстоянието между две точки).

Знам, че това правило работи добре за декартовата координатна система, но повече или по-малко трябва да работи чрез 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); //изчисляване на разликата в x (първия катет на правоъгълен триъгълник), функция abs(x) - връща модула на числото x x
$my=abs($cy-$y); //изчислете разликата между играчите (вторият катет на правоъгълния триъгълник)

$dist=sqrt(pow($mx,2)+pow($my,2)); //Вземете разстоянието до метрото (дължината на хипотенузата според правилото, хипотенузата е равна на корена от сбора на квадратите на катетите)

Ако не е ясно, нека обясня: представям си, че разстоянието между две точки е хипотенузата на правоъгълен триъгълник. Тогава разликата между X на всяка от двете точки ще бъде единият катет, а другият катет ще бъде разликата на Y на същите две точки. След това, като изчислите разликите между X и Y, можете да използвате формулата, за да изчислите дължината на хипотенузата (т.е. разстоянието между две точки).

Знам, че това правило работи добре за декартовата координатна система, но повече или по-малко трябва да работи чрез longlat координати, т.к. измереното разстояние между две точки е незначително (от 30 до 1500 метра).

Разстоянието обаче според този алгоритъм е изчислено неправилно (например разстояние 1, изчислено от този алгоритъм, превишава разстояние 2 само с 13%, докато в действителност разстояние 1 е равно на 1450 метра, а разстояние 2 е равно на 970 метра, т.е. всъщност разликата достига почти 50% ).

Ако някой може да помогне ще съм много благодарен.

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

","html":"Здравейте,","contentType":"text/html"),"titleImage":null,"tags":[("displayName":"измерване на разстояние","slug":"измерение- 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/56a98d48b15b79e31e0d 54c8/removePost","urlDraft":"/блог/ 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/56a98d48b15b79e31e0d54 c8"," urlEdit PostPage ":"/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"," автор" :("id":"108613929","uid":("value":"108613929","lite":false,"hosted":false),"псевдоними":(),"login":" mrdds" ,"display_name":("name":"mrdds","avatar":("default":"0/0-0","empty":true)),,"address":" [имейл защитен]","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/файл_1456488726678/ориг")))))">

Определяне на разстоянието между две точки САМО с помощта на longlat координати.

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

$dist=sqrt(pow($mx,2)+pow($my,2)); //Вземете разстоянието до метрото (дължината на хипотенузата според правилото, хипотенузата е равна на корена от сбора на квадратите на катетите)

Ако не е ясно, нека обясня: представям си, че разстоянието между две точки е хипотенузата на правоъгълен триъгълник. Тогава разликата между X на всяка от двете точки ще бъде единият катет, а другият катет ще бъде разликата на Y на същите две точки. След това, като изчислите разликите между X и Y, можете да използвате формулата, за да изчислите дължината на хипотенузата (т.е. разстоянието между две точки).

Знам, че това правило работи добре за декартовата координатна система, но повече или по-малко трябва да работи чрез longlat координати, т.к. измереното разстояние между две точки е незначително (от 30 до 1500 метра).

Разстоянието обаче според този алгоритъм е изчислено неправилно (например разстояние 1, изчислено от този алгоритъм, превишава разстояние 2 само с 13%, докато в действителност разстояние 1 е равно на 1450 метра, а разстояние 2 е равно на 970 метра, т.е. всъщност разликата достига почти 50% ).

Ако някой може да помогне ще съм много благодарен.

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

В тази статия ще разгледаме начините за определяне на разстоянието от точка до точка теоретично и с помощта на примера на конкретни задачи. Като начало нека въведем някои дефиниции.

Yandex.RTB R-A-339285-1 Определение 1

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

Изходни данни: координатна права O x и произволна точка A, лежаща върху нея. Всяка точка от правата има едно реално число: нека това е определено число за точка A x A,това е и координатата на точка А.

Като цяло можем да кажем, че дължината на определен сегмент се оценява в сравнение с сегмент, взет като единица дължина в дадена скала.

Ако точка A съответства на цяло реално число, като отлагаме последователно от точка O до точка по правата O A сегменти - единици за дължина, можем да определим дължината на сегмента O A от общия брой заделени единични сегменти.

Например точка А съответства на числото 3 - за да стигнете до нея от точка О, ще трябва да оставите три единични сегмента. Ако точка А има координата - 4, единичните сегменти се разполагат по подобен начин, но в различна, отрицателна посока. Така в първия случай разстоянието O A е равно на 3; във втория случай O A = 4.

Ако точка А има рационално число като координата, тогава от началото (точка O) начертаваме цяло число единични отсечки, а след това необходимата му част. Но геометрично не винаги е възможно да се направи измерване. Например, изглежда трудно да се начертае фракцията 4 111 върху координатната права.

Използвайки горния метод, е напълно невъзможно да се начертае ирационално число върху права линия. Например, когато координатата на точка А е 11. В този случай е възможно да се обърнем към абстракция: ако дадената координата на точка А е по-голяма от нула, тогава O A = x A (числото се приема като разстояние); ако координатата е по-малка от нула, тогава O A = - x A . Като цяло тези твърдения са верни за всяко реално число x A.

За да обобщим: разстоянието от началото до точката, която съответства на реално число на координатната права, е равно на:

  • 0, ако точката съвпада с началото;
  • x A, ако x A > 0;
  • - x A, ако x A< 0 .

В този случай е очевидно, че дължината на самия сегмент не може да бъде отрицателна, следователно, използвайки знака за модул, ние записваме разстоянието от точка O до точка A с координатата х А: O A = x A

Следното твърдение ще бъде вярно: разстоянието от една точка до друга ще бъде равно на модула на координатната разлика.Тези. за точки A и B, лежащи на една и съща координатна линия за всяко местоположение и имащи съответни координати х АИ x B: A B = x B - x A.

Изходни данни: точки A и B, лежащи на равнина в правоъгълна координатна система O x y с дадени координати: A (x A, y A) и B (x B, y B).

Нека начертаем перпендикуляри през точки A и B към координатните оси O x и O y и в резултат да получим проекционните точки: A x, A y, B x, B y. Въз основа на местоположението на точки A и B са възможни следните опции:

Ако точките А и В съвпадат, то разстоянието между тях е нула;

Ако точки A и B лежат на права линия, перпендикулярна на оста O x (ос на абсцисата), тогава точките съвпадат и | A B | = | A y B y | . Тъй като разстоянието между точките е равно на модула на разликата на техните координати, тогава A y B y = y B - y A и следователно A B = A y B y = y B - y A.

Ако точки A и B лежат на права линия, перпендикулярна на оста O y (ординатна ос) - по аналогия с предходния параграф: A B = A x B x = x B - x A

Ако точките A и B не лежат на права линия, перпендикулярна на една от координатните оси, ще намерим разстоянието между тях, като изведем формулата за изчисление:

Виждаме, че триъгълник A B C е правоъгълен по конструкция. В този случай A C = A x B x и B C = A y B y. Използвайки Питагоровата теорема, създаваме равенството: A B 2 = A C 2 + B C 2 ⇔ A B 2 = A x B x 2 + A y B y 2 и след това го трансформираме: A B = A x B x 2 + A y B y 2 = x B - x A 2 + y B - y A 2 = (x B - x A) 2 + (y B - y A) 2

Нека направим заключение от получения резултат: разстоянието от точка А до точка В на равнината се определя чрез изчисление по формулата, използвайки координатите на тези точки

A B = (x B - x A) 2 + (y B - y A) 2

Получената формула също потвърждава предварително формирани твърдения за случаи на съвпадение на точки или ситуации, когато точките лежат на прави линии, перпендикулярни на осите. Така че, ако точки A и B съвпадат, ще бъде вярно следното равенство: A B = (x B - x A) 2 + (y B - y A) 2 = 0 2 + 0 2 = 0

За ситуация, в която точки A и B лежат на права линия, перпендикулярна на оста x:

A B = (x B - x A) 2 + (y B - y A) 2 = 0 2 + (y B - y A) 2 = y B - y A

За случая, когато точки A и B лежат на права линия, перпендикулярна на ординатната ос:

A B = (x B - x A) 2 + (y B - y A) 2 = (x B - x A) 2 + 0 2 = x B - x A

Изходни данни: правоъгълна координатна система O x y z с лежащи върху нея произволни точки с дадени координати A (x A, y A, z A) и B (x B, y B, z B). Необходимо е да се определи разстоянието между тези точки.

Нека разгледаме общия случай, когато точките A и B не лежат в равнина, успоредна на една от координатните равнини. Нека начертаем равнини, перпендикулярни на координатните оси през точки A и B и да получим съответните проекционни точки: A x , A y , A z , B x , B y , B z

Разстоянието между точките A и B е диагоналът на получения паралелепипед. Според конструкцията на измерванията на този паралелепипед: A x B x , A y B y и A z B z

От курса по геометрия знаем, че квадратът на диагонала на паралелепипед е равен на сумата от квадратите на неговите размери. Въз основа на това твърдение получаваме равенството: A B 2 = A x B x 2 + A y B y 2 + A z B z 2

Използвайки изводите, получени по-рано, пишем следното:

A x B x = x B - x A, A y B y = y B - y A, A z B z = z B - z A

Нека трансформираме израза:

A B 2 = A x B x 2 + A y B y 2 + A z B z 2 = x B - x A 2 + y B - y A 2 + z B - z A 2 = = (x B - x A) 2 + (y B - y A) 2 + z B - z A 2

Финал формула за определяне на разстоянието между точките в пространствотоще изглежда така:

A B = x B - x A 2 + y B - y A 2 + (z B - z A) 2

Получената формула е валидна и за случаите, когато:

Точките съвпадат;

Те лежат на една координатна ос или права линия, успоредна на една от координатните оси.

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

Пример 1

Изходни данни: дадени са координатна права и лежащи върху нея точки с дадени координати A (1 - 2) и B (11 + 2). Необходимо е да се намери разстоянието от началната точка O до точка A и между точките A и B.

Решение

  1. Разстоянието от референтната точка до точката е равно на модула на координатата на тази точка, съответно O A = 1 - 2 = 2 - 1
  2. Определяме разстоянието между точките A и B като модула на разликата между координатите на тези точки: A B = 11 + 2 - (1 - 2) = 10 + 2 2

Отговор: O A = 2 - 1, A B = 10 + 2 2

Пример 2

Изходни данни: дадени са правоъгълна координатна система и две точки, лежащи върху нея A (1, - 1) и B (λ + 1, 3). λ е някакво реално число. Необходимо е да се намерят всички стойности на това число, при които разстоянието A B ще бъде равно на 5.

Решение

За да намерите разстоянието между точките A и B, трябва да използвате формулата A B = (x B - x A) 2 + y B - y A 2

Замествайки реалните стойности на координатите, получаваме: A B = (λ + 1 - 1) 2 + (3 - (- 1)) 2 = λ 2 + 16

Също така използваме съществуващото условие, че A B = 5 и тогава равенството ще бъде вярно:

λ 2 + 16 = 5 λ 2 + 16 = 25 λ = ± 3

Отговор: A B = 5, ако λ = ± 3.

Пример 3

Изходни данни: зададено е тримерно пространство в правоъгълната координатна система O x y z и лежащите в нея точки A (1, 2, 3) и B - 7, - 2, 4.

Решение

За да решим задачата, използваме формулата A B = x B - x A 2 + y B - y A 2 + (z B - z A) 2

Замествайки реалните стойности, получаваме: A B = (- 7 - 1) 2 + (- 2 - 2) 2 + (4 - 3) 2 = 81 = 9

Отговор: | A B | = 9

Ако забележите грешка в текста, моля, маркирайте я и натиснете Ctrl+Enter