2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Поворот сферической системы координат по неосновной оси
Сообщение06.08.2011, 08:57 
Здраствуйте!
Пытаюсь понять, имеет ли задача аналитическое ( с помощью формул) решение.

Имеется сферическая система координат с единичным радиусом, т.е фактически, координат всего две. - широта и долгота.
Эти две координаты указывают на определенную точку на сфере.
Далее, мы поворачиваем сферу по оси, перпендикулярной основным осям, т.е широте и долготе.

Точка на сфере смещается. ( если смотреть со стороны "неподвижного" внешнего наблюдателя)
Для возвращения точки в прежнее место надо изменить широту и долготу на некоторый угол.

Можно ли этот угол выразить аналитически из двух углов системы до поворота и угла поворота?

Понятно, что задача не имеет решения при углах , близких у 90 градусов, но это и не надо.
Также, достаточно одной половинки сферы.

Физически- это моделирование углов карданова подвеса с двумя степенями свободы, при повороте вокруг третьей оси.

 
 
 
 Re: Поворот сферической системы координат по неосновной оси
Сообщение06.08.2011, 10:06 
Serj78 в сообщении #473779 писал(а):
Далее, мы поворачиваем сферу по оси, перпендикулярной основным осям, т.е широте и долготе.

Это как?

По сабжу: http://en.wikipedia.org/wiki/Charts_on_SO%283%29

 
 
 
 Re: Поворот сферической системы координат по неосновной оси
Сообщение06.08.2011, 12:44 
Kallikanzarid в сообщении #473788 писал(а):
Serj78 в сообщении #473779 писал(а):
Далее, мы поворачиваем сферу по оси, перпендикулярной основным осям, т.е широте и долготе.

Это как?



Это так: предположим, у нас одна ось направлена вперед, вторая- вправо. Повороты единичного вектроа вокруг них- Это будут широта и долгота.
Поворот делается ВСЕЙ СИСТЕМЫ (двух осей- широты и долготы) по оси, перпендикулярной двум основным, то есть по оси, смотрящей вниз. (или вверх :) )

 
 
 
 Re: Поворот сферической системы координат по неосновной оси
Сообщение06.08.2011, 12:49 
Serj78 в сообщении #473809 писал(а):
Это так: предположим, у нас одна ось направлена вперед, вторая- вправо. Повороты единичного вектроа вокруг них- Это будут широта и долгота.

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

 
 
 
 Re: Поворот сферической системы координат по неосновной оси
Сообщение06.08.2011, 13:27 
Аватара пользователя
Serj78 в сообщении #473809 писал(а):
Это так: предположим, у нас одна ось направлена вперед, вторая- вправо. Повороты единичного вектроа вокруг них- Это будут широта и долгота.

Обычно широтой и долготой называют координаты точки на сфере, причём совсем иначе введённые. Может, вам для начала хотя бы про углы Эйлера почитать?

 
 
 
 Re: Поворот сферической системы координат по неосновной оси
Сообщение06.08.2011, 14:09 
Похоже, я что-то не так формулирую, .. :)
Про углы Эйлера я читал, про матрицу поворотов и кватернионы тоже :)

Задача- про ПОВОРОТ ОСЕЙ СИСТЕМЫ КООРДИНАТ.

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

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

Задача стоит в описании углов поворота колец относительно их осей при повороте всей этой системы вокруг ВЕРТИКАЛЬНОЙ оси.

Когда лазер смотрит строго вниз - крути- не крути по вертикальной оси- точка никуда не смещается.

Если точка куда смещена от нижнего "полюса" сферы- она при повороте вокруг вертикальной оси описывает дугу окружности. Задача - путем перемещения колец вернуть точку назад. На какие углы надо повернуть кольца?

 
 
 
 Re: Поворот сферической системы координат по неосновной оси
Сообщение06.08.2011, 15:17 
Аватара пользователя
Serj78 в сообщении #473825 писал(а):
Похоже, я что-то не так формулирую, .. :)

Теперь получилось лучше. Без "осей, перпендикулярных широте".

Итого, у вас есть координаты на сфере $\theta\in[-\tfrac{\pi}{2},\tfrac{\pi}{2}],$ $\varphi\in[-\pi,\pi]\equiv S^1.$ Вы поворачиваете сферу вокруг оси, проходящей через центр и точку $\theta=0,$ $\varphi=0.$ Вам надо найти новые координаты $\theta',$ $\varphi'.$

В таком виде задача решается так:
1) переводите сферические координаты в трёхмерные декартовы, $x,$ $y,$ $z;$
2) поворачиваете трёхмерные декартовы координаты с помощью очевидной матрицы поворота;
3) переводите новые декартовы координаты в новые сферические.

Выкладки настолько просты, что я их не привожу из уважения к вам.

 
 
 
 Re: Поворот сферической системы координат по неосновной оси
Сообщение06.08.2011, 16:15 
Если вам позволяет время- пункт 2 немного подробнее распишите, пожалуйста..

 
 
 
 Re: Поворот сферической системы координат по неосновной оси
Сообщение06.08.2011, 18:17 
Аватара пользователя
Допустим, вы ввели декартову систему координат так, что ось $(\theta,\varphi)=(0,0)$ совпадает с осью $x.$ Тогда вы просто пишете матрицу поворота вокруг оси $x\colon$
$$
\left(\begin{array}{c}
x' \\ y' \\ z'
\end{array}\right)=
\left(\begin{array}{ccc}
1 & \phantom{-}0 & 0 \\
0 & \phantom{-}\cos\alpha & \sin\alpha \\
0 & -\sin\alpha & \cos\alpha \\
\end{array}\right)
\left(\begin{array}{c}
x \\ y \\ z
\end{array}\right).
$$
Если вам нужно делать повороты вокруг других координатных осей, их матрицы получаются просто циклическими перестановками строк и столбцов этой матрицы, так чтобы единица оставалась на диагонали.

 
 
 
 Re: Поворот сферической системы координат по неосновной оси
Сообщение06.08.2011, 18:22 
Спасибо!

Пришел на ум еще один подход:
1.преобразовываем сферические углы вращения в кватернион.
2. Поворачиваем кватернион (перемножаем его с кватернионом, описывающим поворот вокруг вертикальной оси)
3. преобразуем кватернион в сферические координаты.

Возможно, этот путь будет менее затратен по вычислительным ресурсам.

Нашел замечательный документ по алгоритмам поворота:
http://www.rossprogrammproduct.com/tran ... %20FAQ.htm

 
 
 
 Re: Поворот сферической системы координат по неосновной оси
Сообщение06.08.2011, 19:21 
Аватара пользователя
Serj78 в сообщении #473866 писал(а):
Возможно, этот путь будет менее затратен по вычислительным ресурсам.

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

Теорию поворотов не стоит учить по всяким "документам" и "алгоритмам", это - костыли для тех, кто не справился с чтением нормальных учебников.

 
 
 
 Re: Поворот сферической системы координат по неосновной оси
Сообщение06.08.2011, 21:52 
Munin в сообщении #473878 писал(а):
Подход с матрицами более общий, хотя при заданных условиях это роли не играет.

ИМХО эстетически приятней здесь говорить об индуцированном действии $SO(3)$ на сферу :-)

 
 
 
 Re: Поворот сферической системы координат по неосновной оси
Сообщение06.08.2011, 22:10 
Аватара пользователя
Ну да. Но что такое $SO(3),$ всё равно придётся объяснять с помощью матриц...

 
 
 
 Re: Поворот сферической системы координат по неосновной оси
Сообщение06.08.2011, 22:32 
Munin в сообщении #473907 писал(а):
Но что такое $SO(3),$ всё равно придётся объяснять с помощью матриц...

Ну да :-)

 
 
 [ Сообщений: 14 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group