Страницы: 1
RSS
Направление вектора. Определение расстояния и направления от одной точки до других, упростить формулу
 
Уважаемые коллеги,

Для цели определения расстояния и направления от одной точки (начала отсчета) до других точек (точки заданы координатами на сфере и радиусом Земли) я использую формулы - они приведены в приложенном файле.
Если к формуле расчета длины вектора (она честно утащена отсюда) у меня нет претензий, то формулу учета направления (север - юг - запад - восток  ИЛИ циферблат часов) я придумывал сам. И мне кажется, что ее можно значительно упростить - нет ли у Вас плодотворных идей на эту тему?

С уважением,
Илья
Изменено: IKor - 26.10.2018 14:39:26 (отредактировал формулу)
 
Добрый день! Здесь смотрели (есть, в том числе, пример для Excel)?
Изменено: sokol92 - 26.10.2018 14:45:29
Владимир
 
Владимир,
Благодарю за ссылку.
Тем не менее, я не нашел там ответа на интересующий меня вопрос (для Excel'я там приведен пример вычисления дистанции между двумя точками, к которому у меня нет вопросов...):
Можно ли упростить формулу <достаточно грубого> определения направления вектора, заданного координатами начала и конца.

Сама задача мной решена - но, мне не нравится примененная формула:
- определение угла поворота вектора (его тангенс равен отношению разниц соответствующих координат начала и конца вектора),
- округление до наперед заданных значений
- и выбор "названия направления" из таблицы значений

Есть ли идеи как сделать проще и понятнее?
 
Ну меня для начала настораживает отсутствие в формуле для дистанции числа 6366.2. Есть подозрение, что она сильно неточная. Причём если перейти к полярным координатам, то и формула упростится :)
 
Для моих целей точность достаточна (с точностью до 1 км вычисления совпадают с результатами Google'а и Яндекса...) - в формуле используется число 6371 км...
Можно ли где-то увидеть результат упрощения?
Нет ли мыслей по упрощению формул(ы) для вычисления направления?
=====================UPDATE===================
Прошу прощения - я не сразу понял суть Ваших опасений: математика в формуле определения направления действительно сильно упрощена (до проекции на плоскость, касающуюся сферы в точке начала координат) - но даже в правильной математике (см. ссылку ниже в сообщении #9) для определения азимута радиус Земли не требуется.
Изменено: IKor - 30.10.2018 12:10:58
 
Цитата
IKor написал:
вычисления направления?
Ещё бы понять, что вы подразумеваете под направлением. Даны две точки, широта 0, у одной долгота 1, у другой -1. Какое направление имеет вектор от первой точки ко второй?
 
Хм. Угол между меридианом, проходящим через первую точку и направлением на вторую?
 
Андрей, очевидно, что вторая (-1) точка находится западнее первой (1), поэтому, принимая первую точку в качестве начала отсчета формула должна вернуть (и возвращает!) литеру "З" = "запад" или "IX часов".
Однако, в моем случае ситуация упрощается отсутствием отрицательных координат (все точки лежат в северном и восточном полушариях)
 
Сразу отмечу, что не являюсь специалистом по сферической тригонометрии. В любом случае, речь идет о понятиях, которыми картографы пользуются сотни лет (а астрономы - тысячи), так что изобретать свои формулы точно не стоит. Можно посмотреть еще здесь (про начальный азимут).
Изменено: sokol92 - 26.10.2018 18:50:24
Владимир
 
Off
Цитата
sokol92 написал:
которыми картографы пользуются сотни лет,
Владимир, это по тому , что у них excel небыло. :)
По вопросам из тем форума, личку не читаю.
 
Off. Здравствуйте, Михаил! Был, только звали его Эйлер (кстати, написал основополагающий учебник по сферической тригонометрии).
Цитата
однажды два студента, выполняя независимо сложные астрономические  вычисления, получили немного различающиеся результаты в 50-м знаке и  обратились к Эйлеру за помощью. Эйлер проделал те же вычисления в уме и указал правильный результат
А мы на форуме с 16-м знаком никак разобраться не можем :)  
Изменено: sokol92 - 26.10.2018 19:27:25
Владимир
 
Коллеги,

Жалко, что у Вас не появилось конструктивных предложений по упрощению формулы для выбора одного из восьми румбов (или одного из двенадцати часов) в зависимости от двух числовых переменных...
 
IKor, у Вас две задачи. Найти азимут исходя из двух точек и выбор обозначения направления. По первой Вам предложили поискать формулы, а для второй задавать вопрос можно иначе. Есть вычесленная величина и надо сопоставить с ней ....  величина меняется от и до и соответствует ....
По вопросам из тем форума, личку не читаю.
 
Михаил, по всей видимости Вы правы: я мог бы сформулировать задачу по-другому.
Но мне казалось, что раз я показал свое решение задачи поиска направления (азимута) и попросил поделиться идеями по его оптимизации, то у вас не возникнет вопросов по имеющимися исходными данными (четыре координаты двух точек) и желаемым результатом (направление-азимут от одной точки до другой).

В отношении математики: безусловно, на сайте по ссылке Сокола приведены более точные вычисления азимута (обобщенные на всю поверхность сферы) - прошу принять мою благодарность. Однако, очевидно, эта информация помогает не упростить мою формулу, но сделать вычисления точнее.
В принципе меня устраивает точность вычисления азимута по сильно упрощенной формуле (я рассматриваю широту и долготу точек в качестве ортогональных координат на плоскости) - зато хочется использовать другие возможности MS Excel вместо выбора результата из плоской таблицы с тремя колонками...

Отличие в двух приводненных мной вариантах представления направления (азимута) заключается лишь в количестве строк в таблице (8 румбов против 12 часов) и месте хранения информации ({виртуальная таблица} или дополнительные ячейки)...

И если у кого-нибудь возникнут другие идеи по выбору результата вычислений, то я буду рад попробовать их применить к своей задаче.
 
IKor,  то есть  
Цитата
IKor написал:
хочется использовать другие возможности MS Excel вместо выбора результата из плоской таблицы с тремя колонками...
или
Цитата
БМВ написал:
Есть вычесленная величина и надо сопоставить с ней ....  величина меняется от и до и соответствует ....
Так?
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
Так?
Да: Вычислена величина угла - нужно по этому значению выбрать одно из фиксированных значений азимута.
Однако,
Если по какой-либо причине для выбора результата удобнее получить другое промежуточное значение [угла] на основании тех же исходных данных [координат], то у меня нет никаких возражений.
Главные критерии: простота и лаконичность формулы... :)
Изменено: IKor - 30.10.2018 15:05:34
 
ну будет не 5x3 таблица, а 8x2 или 2 по 8, особо не изменится ничего.
у вас можно чуть упростить
2+($D4<$D$2) вместо 2*($D4>=$D$2)+3*($D4<$D$2)
По вопросам из тем форума, личку не читаю.
 
Цитата
IKor написал:
Главные критерии: простота и лаконичность формулы...
А то что будет плюс/минус лапоть - это не важно?!
 
Андрей VG, Андрей, чай не клад ищем :-)
По вопросам из тем форума, личку не читаю.
 
Цитата
Андрей VG написал:
А то что будет плюс/минус лапоть
Речь идет об указании примерного расстояния и направления на ближайшие к указанной точке реперы (метеостанции, если кому-то это интересно). Для более-менее осознанного выбора одной из реперных точек для получения расчётных данных. Возможно потом я попробую аппроксимировать значение нужного параметра по величинам параметров в реперных точках, но это вопрос отдаленного будущего :)

Цитата
БМВ написал:
будет не 5x3 таблица, а 8x2
На мой взгляд - это уже существенное улучшение. Почему-то выбор табличных данных по двум параметрам вместо одного оскорбляет мое чувство прекрасного...

Цитата
БМВ написал:
можно чуть упростить
Спасибо!
 
Цитата
БМВ написал:
чай не клад ищем :-)
Ну, да
Берём пару
начало отсчета: 52,8775 28,63216667
точка: 59,644209 33,542096 (строка 9).
Грубо цена градуса 40000 / 360 = 111 км.
59,644209 - 52,8775 - 6,766709, расстояние по широте 752 км
33,542096 - 28,63216667 = 4,909929333, расстояние по долготе 546 км с поправкой на среднюю широту Cos(56,2608545) получим 303 км.
С расстоянием между ними в 811 км можно согласиться - сфера же, хотя не мешало бы и проверить. Но вот с направлением на 1 час и на север - это как это? Скорее уж северо-восток, ну или северо-северо-восток если считать треугольник на плоскости, то 22 градуса в эту сторону от севера ;) . Так что лапоть как есть.
 
Андрей, в принципе для меня отклонение на 22 градуса от азимута на север все еще остается "С", т.к. границей с "СВ" является 22,5 градуса (+67,5 градусов в моей таблице)
А вот границей между "XII часами" и "I часом" является 15 градусное отклонение от азимута на север (75 градусов в моей таблице)
Поэтому формально программа считает корректно.

Я не возражаю против столь грубой точности с определением направления - главное не перепутать север с востоком :)
Страницы: 1
Наверх