Прямая задача в сферической локсодромии
Нахождение координат точки, отстоящей от данной
точки с координатами (B1, L1) на
заданном расстоянии S в заданном направлении A
|
|
(31) |
-
где R – радиус сферы.
Для a = 0 и a = Pi используются формулы
|
|
(32) |
В системе Вектор
В случае с запада на восток или обратно






Движение из точка р11 в р12 по
логарифмической спирали,
локсодромии и ортодромии
Длина по локсодромии p11-p12 по 11 отрезкам линии p11-p12 равна
Длина полилинии = 10178.3. Построенная
псевдо-локсодромия (назовем ее так) меньше где-то на
Обратная геодезические задачи в сферической
локсодромии
Приведенные формулы позволяют решить прямую
геодезическую задачу – нахождение координат точки, отстоящей от данной точки с
координатами (B1, L1)
на заданном расстоянии S в заданном направлении A
|
|
(31) |
-
где R – радиус сферы.
Для a = p/2 и a = 3p/2 используются формулы
|
|
(32) |
Обратная геодезическая задача, то есть
нахождение для двух точек с известными координатами расстояния и дирекционного
угла (пеленга из первой точки во вторую), в сферической локсодромии решается на
основании формул (31), (32):
|
|
(33) |
|
|
|
Примеры


Расчет длины в км

Расчет длины в милях

Начальная и конечная точки взяты из примера. Есть отличия
У автора рисунка при
плавании по локсодромии следуя из т. А в т. В постоянным курсом КЛОК = 68°08′(~ 68,1°),
пройденное расстояние SЛОК составит 3576,3 мили.
1
английская миля =
1 морская миля = 1,852 километра
1 географическая миля = 7,42 километра
1 старорусская миля = 7,4676 километра
1 древнегреческая миля = 1,38825 километра
Скорость в мерике меряют в милях в час.
1 миля в час =
Пример 2.Определить истинный локсодромический путевой угол a
при полете из г. Реймса в г. Потсдам. Построить путь разными вариантами
Реймс (фр. Reims
[ʁɛ̃s]) — город на северо-востоке Франции, в
Реймс — самый крупный город региона
Шампань — Арденны. Расположен на равнине, на правом берегу реки Вель (приток реки Эн). На юге и
востоке к городу примыкают Реймсские горы, знаменитые
своими виноградниками для производства шампанского.
Координаты 49° 15′ 57″ N, 4° 1′ 46″ E Десятичные 49.265833, 4.029444
Потсда́м (нем. Potsdam [ˈpɔtsdam], н.-луж. Podstupim) — город на востоке
Германии с населением около 150 000 человек. Столица федеральной земли
Бранденбург. Расположен на реке Хафель и на берегах
нескольких соединённых между собой озёр, в
52° 24′ 0″ N, 13° 4′ 0″ E Десятичные 52.4, 13.066667


Наши вычисления (

При
увеличении
Пример 3. Рассчитать угол локсодромии из Кейптауна в Нью-Йорк

Кейптаун
|
Координаты |
33° 55′ 0″ S, 18° 29′ 0″ E |
Десятичные |
-33.916667, 18.483333 |
Нью-Йорк
|
Координаты |
40° 43′ 0″ N, 74° 0′ 0″ W |
Десятичные |
40.716667, -74 |

У нас угол пути по локсодромии – 51 градус – на два градуса отличается от того что проложено по прямой на карте.
Расстояние по справочникам: ”Расстояние между городами Нью-Йорк и Кейптаун:
Более всего близок расчет по псевдо-локсодромии. И вообще разница во всех случаях небольшая меньше километра. Для судна
это ничего не значит.

В системе Вектор ортодромия или локсодромия задается (перезадается) полилинией на которой в завимости от безразмерного параметра t вычисляется любая точка, ее декартовые координаты переводятся в географические (в диалоге это получается автоматически в редактировании «точка» или при задании «точка»). Нужен возможно сделать метод - перезадания точки в декартовых координат в сферические.
Примечание.
Построение локсодромии в 4-мерном пространстве можно по двум сферам: земной, и
мира, заданных в координатных пространствах xyz и xyt, подобно тому как по
двум координатным проекция в 3-мерном
строится линия.

Пе́ленг в навигации — горизонтальный угол между северной
частью меридиана наблюдателя и направлением из точки наблюдения на объект;
измеряется по часовой стрелке от нуля (направление на норд, N) до полной дуги окружности (360°, или 32 румба).
В отличие от азимута,
допускающего вариации отсчета, пеленг всегда измеряется от направления на норд,
по часовой стрелке и на полную дугу окружности. Таким образом
пеленг соответствует круговому азимуту.
Румб — в морской терминологии 1/32 полной окружности, и соответственно одно из
направлений относительно севера. В конце 1980-х обозначение
востока O (нем. Ost, нидерл.
oost) было заменено на E (англ. East).
Листинг
s=Log (10)
'VbsMsg "s = " & s
' Кривая на сфере а(t) = (широта, долгота)
Rr=6.378
' Пример Откуда куда? От Кубы к берегам Испании
Set p1 = p(10, 35,0)
Set p2 = p(42, 133,0)
B1 = p1.x
B2 = p2.x
L1 = p1.y
L2 = p2.y
n11 = LastNmb()
' Set p0 = p(-Rr,0,0)
Set p0 = p(0,0,0)
' p11-p12 - декартовые координаты
Set p11 =
PointSfera(p1.x,
p1.y, Rr, 0)
Ngpoint.ss p11
Width
322
SetColor 250,0,0
Set p12 =
PointSfera(p2.x,
p2.y, Rr, 0)
Ngpoint.ss p12
Width
322
SetColor 0,0,250
text.ss p11,"p11"
text.ss p12,"p12"
Pi = 3.14
A = 45 ' угол
Set Pn = p11
tip=0 ' 0 - параллели, 1 - общий
случай
For ss
= 0 To 10 Step 0.1
' Для a = p/2 и a = 3p/2 используются формулы
if tip=0 Then
B2 =
B1*Pi/180 ' по параллели
L2 =
L1*Pi/180 + ss/(Rr*cos(B1*Pi/180))
end if
if tip=1 Then
B2 =
B1*Pi/180 + ss*cos(A*Pi/180)/Rr
L2 =
L1*Pi/180 + tan(A*Pi/180)*(log (tan(Pi/4 +
(B2*Pi/180)/2)) - log(tan(Pi/4 + (B1*Pi/180)/2)))
end if
Set
Ai = PointSfera(B2*180/pi, L2*180/pi, Rr, 0)
Ngpoint.ss Ai
Width
122
SetColor 250,0,0
Otrezok.ss Pn, Ai
Set
Pn = Ai
Next
n12 = LastNmb()
MoveToGroup n11+1, (n12+1), "Кривая"
' Кривая на сфере а(t) = (широта,долгота)
Rr=6.30
dl=p1.y
Set p0 = p11
n13 = LastNmb()
For hr=p1.x To 90 Step 1
Set
A = PointSfera(hr, dl, Rr, 0)
Ngpoint.ss A
Width
122
SetColor 250,0,0
Otrezok.ss p0,A
Width
66
SetColor 0,0,250
set p0=A
dl=dl+10
Next
n14 = LastNmb()
MoveToGroup n13+1, (n14+1), "Кривая"
' Кривая на сфере а(t) = (широта,долгота)
Rr=6.30
dl=p1.y
Set p0 = p11
n15 = LastNmb()
For hr=p1.x To p2.x Step (p2.x-p1.x)/11
Set
A = PointSfera(hr, dl, Rr, 0)
Ngpoint.ss A
Width
122
SetColor 250,0,0
Otrezok.ss p0,A
Width
66
SetColor 0,0,250
set p0=A
dl=dl+(p2.y-p1.y)/11
Next
n16 = LastNmb()
MoveToGroup n15+1, (n16+1), "Loksa_may"
n12 = LastNmb()
MoveToGroup n11+1, (n12+1), "Кривая"
Set N = NormPlosk (p(0,0,0),p11, p12)
Krug.ss p(0,0,0), Rr, N
Arc.Sphere p(0, 0, 0), Rr, P11, p12
Width=120
SetColor 250, 0, 0
Vector.Polyline.FromCurrObj 99
L = Vector.Polyline.Length
' MsgBox "Длина дуги = " & L*1000
' VBSMsg "Длина большой дуги = " &
L*1000
' Длина локсодромии
Set A = Loks(P1,
P2)
VBSMsg "Угол движения по локсодромии = "
& 90-A.x _
& vbCrLf & "Длина пути по
локсодромии = " & A.y _
& vbCrLf & "Длина пути по ортодромии
= " & L*1000
' перевести в радианы умножьте градусы на pi/180;
радианы в градусы, умножьте радианы на 180/pi.
Листинг 2
' Кривая на сфере а(t) = (широта, долгота)
Rr=6.378
Set p1 = p(10, 35,0)
Set p2 = p(42, 133,0)
B1 = p1.x
B2 = p2.x
L1 = p1.y
L2 = p2.y
n11 = LastNmb()
' p11-p12 - декартовые координаты
Set p11 = PointSfera(p1.x, p1.y, Rr, 0)
Ngpoint.ss p11
Width
322
SetColor 250,0,0
Set p12 =
PointSfera(p2.x,
p2.y, Rr, 0)
Ngpoint.ss p12
Width
322
SetColor 0,0,250
text.ss p11,"p11"
text.ss p12,"p12"
Pi = 3.14
A = 45 ' угол
Set Pn = p11
' Кривая на сфере а(t) = (широта,долгота)
Rr=6.30
dl=p1.y
Set p0 = p11
n15 = LastNmb()
For hr=p1.x To p2.x Step (p2.x-p1.x)/11
Set
A = PointSfera(hr, dl, Rr, 0)
Ngpoint.ss A
Width
122
SetColor 250,0,0
Otrezok.ss p0,A
Width
66
SetColor 0,0,250
set p0=A
dl=dl+(p2.y-p1.y)/11
Next
n16 = LastNmb()
MoveToGroup n15+1, (n16+1), "Loksa_may"
n12 = LastNmb()
MoveToGroup n11+1, (n12+1), "Кривая"
Set N = NormPlosk (p(0,0,0),p11, p12)
Krug.ss p(0,0,0), Rr, N
Arc.Sphere p(0, 0, 0), Rr, P11, p12
Width=120
SetColor 250, 0, 0
Vector.Polyline.FromCurrObj 99
L = Vector.Polyline.Length
' MsgBox "Длина дуги = " & L*1000
' VBSMsg
"Длина большой дуги = " & L*1000
' Длина локсодромии
Set A = Loks(P1,
P2)
VBSMsg "Угол пеленга по локсодромии = " & 90-A.x _
& vbCrLf & "Длина пути по
локсодромии = " & A.y _
& vbCrLf & "Длина пути по ортодромии
= " & L*1000
' Длина псевдо-локсодромии = 10178.3.