Навигация |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
Навигация |
![]()
Сообщение
#1
|
|
![]() Ректор ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Member Сообщений: 9390 Регистрация: 22.7.2005 Из: library Пользователь №: 10 Поблагодарили: 3186 раз(а) Защита: 3472-8435-56-263 ![]() |
А кто-нибудь в навигации разбирается? А то появилась простенькая задача.
Из пункта с координатами (долгота широта) по кратчайшей дороге (по ортодромии) в пункт (долгота широта) двигаемся ХХ километров и поворачиваем под углом АА. Двигаемся еще УУ километров. С точку с какими координатами мы попадем? Вроде тривиальная задача, но сходу не могу найти решения. -------------------- Я Вернулся!!!!!!!
|
|
|
![]()
Сообщение
#2
|
|
![]() Ректор ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Member Сообщений: 9390 Регистрация: 22.7.2005 Из: library Пользователь №: 10 Поблагодарили: 3186 раз(а) Защита: 3472-8435-56-263 ![]() |
Оказывется этими ортодромиями реально начали пользоваться не так давно, а до этого все активно использовали локсодромии - пути, котроые делаются компасом, под постоянным углом к меридианам, что иногда существенно длиннее.
-------------------- Я Вернулся!!!!!!!
|
|
|
![]()
Сообщение
#3
|
||
![]() Ректор ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Member Сообщений: 9390 Регистрация: 22.7.2005 Из: library Пользователь №: 10 Поблагодарили: 3186 раз(а) Защита: 3472-8435-56-263 ![]() |
Если не вникать в глубокую математику, типа сферической геометрии, а только хотеть посчитаьь результат, то на ПЕРЛе все делается очень просто (IMG:style_emoticons/default/rolleyes.gif)
Вот пример решения прямой и обратной задачи навигации на Перле. CODE use Geo::Ellipsoid; # вот тут библиотека для рассчета навигации на элипсоиде my $geo = Geo::Ellipsoid->new( ellipsoid => 'WGS84', # the best Earth shape units => 'degree', # we working in degrees distance_units => 'meter', # all distances in meters longitude => 1, # longitude range from -180 to 180 degrees bearing => 0, #bearing direction (north=0) counts form 0 to 360 degrees ); my( $lat2, $lon2 ) = $geo->at( $lat1, $lon1, $range, $bearing ); # новые координаты при движении из старых координат по ортодромии заданной стартовым углом на заданное расстояние my( $dist, $theta ) = $geo->to( $lat1, $lon1, $lat2, $lon2 ); # рассчет расстояния и стартового угла ортодромии для движения из одной точки в другую А вот так -------------------- Я Вернулся!!!!!!!
|
|
|
||
![]() ![]() |
Текстовая версия | Сейчас: 16.06.2025, 17:42 |