Добрый день, в процессе расширения кругозора наткнулся на интересный итеративный процесс вычисления параметров трансформации в пространстве между разными прямоугольными системами координат минимум по трем точкам, основанным на алгебре кватернионов. Честно признаюсь, от самой алгебры кватернионов я пока далек, но представленные в статье (см. вложение, со стр. 17) методики показались мне вменяемыми и я решил хотя бы для эксперимента реализовать их в виде итеративного процесса (в MathCAD). Однако я немного запутался с логикой материала (стр. 22), когда в расчет вводятся все 3 координаты, и будут меняться формулы расчета (29-44), которые явным образом завязаны на 2х переменных или там имеется в виду параллельное решение 3х уранвений для двух пар векторов? P.S. Приложил документ MathCAD в архиве... ну и конечно не могу смириться с мнимыми числами в результатах ___ Собственно говоря, практическая необходимость в поиске метода решения по минимальному числу точек заключается в следующей задаче: есть большое число разных моделей ПО для проектирования, которое выгружает свою геометрию в сторонние обменные файлы. Один из них, общуполпулярный, IFC позволяет задавать ориентацию систему координат модели (базовую декартову, от которой идет разбивка геометрии модели) с помощью параметров смещения и трех эйлеровых (?) углов поворота каждой оси в отдельности. Есть возможность посмотреть на координаты точек здания/модели в исходной программе и есть значения координат данной модели в целевой системе (например, конечном генплане или в другой моделе, куда данная должна быть вставлена. То есть речь идет о необходимости по минимальному набору точек (координат X,Y,Z в старой и конечной СК) построить универсальное решение нахождения 3х параметров смещения (dX, dY, dZ) и 3х углов поворота. Масштабный коэффициент по понятным причинам не нужен (рассматриваемая "зона контакта" в пределах квадратного километра). Для случая решения, если базовые оси Z в начальной и конечной программе совпадают решение то несложное - изложено здесь (там же и сама сборочка .. корявенькая )
7 параметров можно вычислить с помощью http://helmparms3d.sourceforge.net только учтите что углы поворота там в радианах а не в угловых секундах. 6 параметров - линейная система уравнений, ее решит любой LSQ-solver.
"Поправку на ветер" не сделал: https://github.com/dr-ni/helmert3d/releases , https://github.com/Geo-Linux-Calculations/helmparms3d/releases
Хмм. А вот это всё не должно находиться в https://geodesist.ru/forums/programmy-dlja-perescheta-koordinat-i-poiska-kljuchej.97/ ? Не, смотрите сами, но по мне так надо бы перенести. Cast @В.Шуфотинский
Тут же вопрос скорее познавательно-математический, а не геодезический (нет привязки к фигуре земли...геодезическим координатам и т.д), рассматривается общее представление идеи трансформации одной 3D декартовой СК относительно другой. Метод Гельмерта, ну, как-то .. не сюда что ли, по моему мнению - слишком общий подход .. есть ли что-то более узкое?
Так и я за то. Зайди в указанный раздел https://geodesist.ru/threads/oprede...yx-sk-metodom-kvaternionov.86002/#post-978424 и увидишь узкоспецифическое.
Была такая страница с работающим в браузере кватернионным преобразователем-вычислителем 7 параметров (javascript) и китайским примером. Сейчас она доступна только через archive.org https://web.archive.org/web/20160312214607/http://diegeodaeten.de/quaternionentransformation.html но все работающие компоненты оттуда можно выковырять ( quaternionentransformation.js ). Там же и список литературы: Horn, B.K.P. (1987), Closed-form solution of absolute orientation using unit quaternions, Journal of the Optical Society of America Nitschke, M., Knickmeyer, E.H. (2000), Rotation Parameters - A survey of Techniques, Journal of Surveying Engineering Sanso, F. (1973), An exact solution of the roto-translation problem, Photogrammetria 29 Shen Y.-Z., Chen Y., Zheng D.-H. (2006), A quaternion-based geodetic datum transformation algorithm, Journal of Geodesy
А позовите уважаемого @ВЯЗ сюда. Он давно давно мне рассказывал о попытках описания деформаций с помощью этого аппарата. Признаться, не понял я ничерта. Но запомнил, звучало фантастически компактно и свежо для геодезии.
Я кстати сделал решение, плюнул на эти сложности (решение нужно вот-вот было), потом как-нибудь нормально сяду разберусь с теорией (очень уж интересно поковырять кватернионы дальше) Реализовал по частному принципу (по сути, как исключение в "мире САПР" - для оси Z вверх и правосторонней СК), тогда общее уравнение преобразование вырождается в частное f(N) = f(dX, dY, dZ,ωz ) Из разностей координат по методу наим. квадратов формирую матрицу поворота, потом нахожу параметры сдвижки и уже пихаю в IFC
Оффтоп (Move your mouse to the spoiler area to reveal the content) Поиск... (https://geodesist.ru/search) кватернион Ничего не найдено. Почините уже этот "Поиск" или уберите вообще!
Оффтоп (Move your mouse to the spoiler area to reveal the content) zvezdochiot, https://geodesist.ru/search/37004024/?q=кватернионов&o=date&c[node]=90 https://geodesist.ru/search/37004026/?q=кватернион&o=date&c[node]=90 https://cse.google.com/cse?cx=partn...ms,nrl=13...0.0...2.34.partner-generic..0.0.0. Не было такого слова не находил - у нас тут не яндекс. Есть слово - система находит, нет - нет. Слово должно совпадать по буквам. Есть специальный модуль, цены ниже - НО! 1. это переход на новую версию 2. Время или деньги на дизайн 3. Мы закрываем галерею. XenForo Enhanced Search $55.00 This is an add-on that provides an enhanced version of the XenForo search system, allowing higher quality results and faster searching.
Кватернионы для нахождения параметров преобразования Бурша-Вольфа не подходят. Они немного о другом. Начну издалека. 0. Преобразование Гельмерта На картинке формула классического преобразования 7 параметров. Обратим внимание на матрицу вращения R. --- Сообщения объединены, 25 ноя 2020, Оригинальное время сообщения: 25 ноя 2020 --- 1. Модель 1. Малые вращения Чтобы ловчее представить элементы матрицы R, примем модель с углами Эйлера, в которой последовательно осуществляем вращение на углы ωx, ωy, ωz вогруг соответствующих осей. Вид полученной матрицы зависит от выбранной последовательности вращений (всего шесть вариантов по числу возможных комбинаций). Учитывая малость углов, разложим синусы и косинусы в ряды по степеням. Заметим, что все варианты выглядят одинаково, если пренебречь членами разложений, начиная со второго. Оставив только первые члены разложений, получим «матрицу вращения» для формулы Бурша-Вольфа. Это матрица вращения только в кавычках, ибо она неортогональна, а её детерминант не равен единице. Также транспонированная матрица и обратная не равны друг другу. При условии малости углов вращения формулы обычно устраивают геодезистов. --- Сообщения объединены, 25 ноя 2020 --- 2. Модель 2. Большие вращения Они же малые, когда нам нужна высокая точность. Вследствие того, что для «матрицы вращения» транспонированная и обратная матрицы не совпадают, принятое в геодезии упрощенное преобразование 7 параметров туда и обратно не сохраняет исходные координаты. Нужна другая модель. Вернёмся к строгому уравнению Гельмерта. Рассмотрим вращение вокруг оси, ориентация которой определяется направляющими косинусами ci. Угол вращения равен ω. --- Сообщения объединены, 25 ноя 2020 --- 3. Мат. методы Два способа считать вращение в модели 2: формула вращения Родригеса формула Эйлера-Родригеса Вторая формула связана с кватернионами.