Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти

  1. С 13.10.2020 снова работает авторизация/регистрация через социальные сети: VK (Вконтакте) и Facebook.
    Скрыть объявление

Сферическое преобразование координат?

Тема в разделе "Геодезия как наука", создана пользователем zvezdochiot, 15 фев 2021.

  1. zvezdochiot

    Форумчанин

    Регистрация:
    27 июн 2014
    Сообщения:
    1.962
    Симпатии:
    714
    Адрес:
    г. Москва
    Для преобразования 3D-координат применяется Трехмерное преобразование Гельмерта ( https://geodesist.ru/threads/helmert3d.86763/ ). Но! Многие отмечают, что это преобразование неплохо работает на малых углах осевых сдвигов. Это потому, что данное преобразование не является "чистым поворотом". Результат такого преобразования может запросто оказаться негожим.

    Поэтому интересует "Сферическое преобразование координат", в котором за "центра сфер" в двух КС принимают "центра масс" координат точек в этих КС:
    Код:
    Xc=sum(X)/n
    Yc=sum(Y)/n
    Zc=sum(Z)/n
    xc=sum(x)/n
    yc=sum(y)/n
    zc=sum(z)/n
    
    И переходят от 3D-координат к векторам вида:
    Код:
    d{X,Y,Z,x,y,z}={X,Y,Z,x,y,z}-{X,Y,Z,x,y,z}c
    R=(dX*dX+dY*dY+dZ*dZ)
    T=(dX*dX+dY*dY)
    r=(dx*dx+dy*dy+dz*dz)
    t=(dx*dx+dy*dy)
    L=atan2(dX,dY)
    F=atan2(T,dZ)
    l=atan2(dx,dy)
    f=atan2(t,dz)
    
    Естественно, встаёт вопрос о начале периода в представлении (R,L,F) и (r,l,f). Как с ним "работать"? Напрашивается прямым текстом преобразование Фурье, которое позволит устранить "разность" начала периодов. Это позволит использовать (L,F) и (l*,f*) для нахождения чистого разворота.

    Никто с подобными наработками не сталкивался?
     
    #1
  2. ErnieBoyd

    Форумчанин

    Регистрация:
    10 июн 2014
    Сообщения:
    215
    Симпатии:
    107
    Перенос координат в центры масс имеет смысл. Но что может дать преобразование Фурье? Это вообще из другой темы.

    Внимание!
    Не надо путать тёплое с мягким, говоря о знаках углов вращения. Это совсем другое. Знаки определяются правилом буравчика либо для вращения координатных осей (EPSG "Coordinate Frame rotation"), либо для вращения объектов вокруг координатного фрейма (EPSG "Position Vector transformation").


    Давайте определимся с терминами. В математике преобразование Гельмерта есть полноценное конформное преобразование. Матрица R является настоящей матрицей вращения, т. е. детерминант равен единице, образующие векторы ортогональны, обратная матрица также является матрицей вращения и др. Результатом суммы прямого и обратного преобразования координат вектора будет тот же самый вектор.

    То, что в анголоязычной геодезии называют Helmert transformation, есть преобразование Бурша-Вольфа. В нём вместо матрицы вращения используется матрица, элементы которой получены разложением в ряды Тейлора по степеням компонент вращения с отбрасыванием членов второго и более высоких порядков. Разумеется, такая матрица не обладает свойствами матрицы вращения. Кроме того, она даёт неконформное преобразование. А сумма прямого и обратного преобразований создаёт иное координатное пространство.

    Точно вращение можно считать так. Даны компоненты вращения ωx, ωy, ωz. Вычисляем угол вращения ω:
    ω2 = ωx2 + ωy2 + ωz2
    Вычисляем ось вращения как единичный вектор направляющих косинусов:
    kx = ωx / ω , ky = ωy / ω , kz = ωz / ω

    Далее преобразуем координатные векторы, для чего используем либо формулу Родрига, либо формулу Эйлера-Родрига. Вторая связана с кватернионами.

    Из преобразования единичных ортов можно получить матрицы прямого и обратного вращения.
     
    #2
    Последнее редактирование: 15 фев 2021
  3. zvezdochiot

    Форумчанин

    Регистрация:
    27 июн 2014
    Сообщения:
    1.962
    Симпатии:
    714
    Адрес:
    г. Москва
    Круто! Один только вопрос: (ωx, ωy, ωz) - это вектор? Хотя не похож. Тогда, какова его визуализация? Как "оно" выглядит?

    Попытаюсь представить:
    Код:
    1. kx=1,ky=0,kz=0 ==> x=0,y=-Z,z=Y
    2. kx=0,ky=1,kz=0 ==> x=Z,y=0,z=-X
    3. kx=0,ky=0,kz=1 ==> x=-Y,y=X,z=0
    
    Чо то не очень.

    Потихоньку начинает доходить. Это три поворота в трёх взаимоперпендикулярных плоскостях.

    Всё не то! К чорту все Ваши вращения. В шапке описан переход из одного вектора в другой без применения доп. элементов в виде трёхостных вращений.
    --- Сообщения объединены, 15 фев 2021, Оригинальное время сообщения: 15 фев 2021 ---
    Присмотревшись ещё раз, увидел, что "сферическая" модель тоже ущербна. Но может стоит объединить? "Центра масс" использовать для сдвигов, а вращения уже без сдвигов. Как вариант.
     
    #3
  4. ErnieBoyd

    Форумчанин

    Регистрация:
    10 июн 2014
    Сообщения:
    215
    Симпатии:
    107
    Это вектор вращения.
    Вращения на угол ω вогруг оси.
    Ось задаётся как единичный вектор k = (kx, ky, kz).

    Так и делают. Смотрите внимательно, это должно помочь.

    Прямое преобразование 10 параметров как последовательность операций:
    1. сдвиг-0
    2. вращение
    3. масштабирование
    4. сдвиг
    При обратном преобразовании последовательность действий обратная.
    Операции масштабирования и вращения можно менять местами, а можно объединить, умножив компоненты матрицы вращения на масштабирующий коэффициент.
    При преобразовании 7 параметров сдвиг-0 нулевой: (0, 0, 0).
    Преобразование 10 параметров всегда приводится к преобразованию 7 параметров.
     
    #4
    zvezdochiot нравится это.
  5. zvezdochiot

    Форумчанин

    Регистрация:
    27 июн 2014
    Сообщения:
    1.962
    Симпатии:
    714
    Адрес:
    г. Москва
    Как бы её понять понягляднее? Это ось, вокруг которой всё вертится? Просто мне наглядность даёт только применение вектора (1,0,0) к такой оси.
     
    #5
  6. ErnieBoyd

    Форумчанин

    Регистрация:
    10 июн 2014
    Сообщения:
    215
    Симпатии:
    107
    Да, это ось, вокруг которой совершается вращение.

    Представьте планету Земля в инерциальной эклиптической системе координат с началом в центре масс Солнечной системы. За сутки Земля совершает поворот вокруг своей оси на 360°. Так вот, в эклиптической СК эта ось вращения есть вектор (0, cos ε, sin ε), где ε — наклонение эклиптики.

    А вот Вы вращаете ручку двери вправо, чтобы войти в комнату. В любой произвольно выбранной системе координат ось вращения — вектор единичной длины в начале координат, направленный параллельно оси ручки от Вас в комнату.
     
    #6
    zvezdochiot нравится это.
  7. zvezdochiot

    Форумчанин

    Регистрация:
    27 июн 2014
    Сообщения:
    1.962
    Симпатии:
    714
    Адрес:
    г. Москва
    Да с "наглядностью" плоховато, но "можно". Сойдёт.
     
    #7
  8. ErnieBoyd

    Форумчанин

    Регистрация:
    10 июн 2014
    Сообщения:
    215
    Симпатии:
    107
    Простите, не знаю Вашей специальности, поэтому удивляюсь.

    Большинство естественнонаучных дисциплин предполагает изучение механики хотя бы в курсе общей физики. Есть там тема гироскопов, в которой всё раскрыто ясно и с предельно наглядными картинками: момент инерции, момент количества движения, вращающие моменты внешних сил, прецессионное движение...

    Если Вы Звездочёт, то на первом курсе учили эту самую механику углублённо, а позже небесную механику, в которой уже в приложении к небесным телам вновь изучали главные моменты инерции, возмущающие гравитационные воздействия и прецессионное движение.

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

    Если изучали ЛА, то должны помнить из курса инерциальных систем всё то же: гироскопы, датчики углов, двойной подвес и способы его использования, гиростабилизаторы и гиростабилизированные платформы, ...

    И каждый раз в любой дисциплине очень красиво нарисованы гироскопы, оси, векторы вращений, векторы моментов и прочая, и прочая.
     
    #8
  9. zvezdochiot

    Форумчанин

    Регистрация:
    27 июн 2014
    Сообщения:
    1.962
    Симпатии:
    714
    Адрес:
    г. Москва
    Честно сказать, я с ходу и не смогу перечислить всё, что изучал. "Пелена времени скрыла следы". Но всё, что Вы перечислили изучал. Но это не требовало внутричерепной визуализации. К тому же изучалось всё это в виде серии "статичных кадров".

    Да и о другом я "слегка". Если взять 2 произвольных 3D -вектора, упирающихся в единичную сферу в двух разных точках, то визуализация перехода одного вектора в другой с помощью трёхосного вращения - это "ход конём", причём в 3D. По другому и не скажешь.
     
    #9
  10. ErnieBoyd

    Форумчанин

    Регистрация:
    10 июн 2014
    Сообщения:
    215
    Симпатии:
    107
    Верно! Выполните векторное умножение первого вектора на второй. Результатом будет вектор длиной sin θ, направленный вдоль оси вращения.
     
    #10
  11. zvezdochiot

    Форумчанин

    Регистрация:
    27 июн 2014
    Сообщения:
    1.962
    Симпатии:
    714
    Адрес:
    г. Москва
    Да всё уже сделано:
    https://github.com/Geo-Linux-Calcul...preadsheets/conformaltrans/helmert3d.gnumeric
    Щаз "визуализую", "жонглируя" цифрами. Внутричерепная же визуализация как была плохой, так ею и осталась.
     
    #11

Поделиться этой страницей

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление