2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Матрицы преобразований в сферических координатах
Сообщение27.06.2013, 13:21 


22/03/10
25
Доброго времени

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

Можно ли таким же способом определить матрицы переноса/поворота для сферических координат?

Понятно, что можно сначала преобразовать в декартову систему из сферической, применить уже известные всем матрицы, и преобразовать обратно из декартовой в сферическую. Но, такой подход крайне не эффективен. Хочется сразу сделать все преобразования именно в сферических координатах ибо есть надежда что это будет работать намного быстрее.
На данный момент на вычисления одной сферической вершины используется sin, cos, arctg и arcsin. В идеале хотелось бы избавиться от них заменить на более примитивные операции или хотя бы сократить их кол-во.

 Профиль  
                  
 
 Re: Матрицы преобразований в сферических координатах
Сообщение27.06.2013, 14:42 


22/03/10
25
Самостоятельные раскопки в данном направлении привели меня к "тензорам".
http://www.astronet.ru/db/msg/1190817/node9.html
Но ковариантность и контравариантность, а так же плохое понимание дифференциалов запутало меня окончательно.
Как я понял 3д декартовой системе тензор равен
$\begin{pmatrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1 
\end{pmatrix}\quad
\begin{pmatrix}
\text{ось $x$}\\
\text{ось $y$}\\
\text{ось $z$} 
\end{pmatrix}$
Если я хочу увидеть где будут находится вершины в другой системе тоже 3д но повёрнутой вокруг оси х например на угол А, то достаточно перемножить вершины вот на такую матрицу
$\begin{pmatrix}
1 & 0 & 0 \\
0 & \cos(A) & -\sin(A) \\
0 & \sin(A) & \cos(A) 
\end{pmatrix}$

Теперь хочется провести аналогию для сферических координат. Тензор
$\begin{pmatrix}
1 & 0 & 0 \\
0 & r^2 & 0 \\
0 & 0 & r^2\cdot\sin^2(lat) 
\end{pmatrix}\quad
\begin{pmatrix}
\text{ось $x$}\\
\text{ось $y$}\\
\text{ось $z$} 
\end{pmatrix}$
Первое на что обращаю внимание длина оси $z$ зависит от квадрата синуса широты и только. Так как $r$ в моём случае всегда = 1. Вроде понятно, это ведь криволинейная ск. То есть уже получается что для каждой вершины придётся вычислять синус широты.
Допустим я хочу увидеть где будут вершины в новой сферической ск которая повёрнута так же вокруг оси $x$ на угол $A$. Вот тут уже появляются масса вопросов:
Как будет выглядеть матрица поворота для сферической ск?
Вокруг какой же из осей будет вращение если представить это в декартовых координатах?
Какая фигура в итоге получится после вращения вершины? Это можно будет потом самому увидеть.
Может вся моя логическая цепочка - бред? Не исключено, учитывая мои познания в математике.

 Профиль  
                  
 
 Posted automatically
Сообщение27.06.2013, 14:47 
Супермодератор
Аватара пользователя


20/11/12
5728
 i  Тема перемещена из форума «Помогите решить / разобраться (М)» в форум «Карантин»
Причина переноса: формулы не оформлены $\TeX$ом

snake32, наберите, пожалуйста, все формулы $\TeX$ом. Инструкции по оформлению формул здесь или здесь (или в этом видеоролике).
После исправлений сообщите в теме Сообщение в карантине исправлено, и тогда тема будет возвращена.

 Профиль  
                  
 
 Posted automatically
Сообщение27.06.2013, 18:51 
Супермодератор
Аватара пользователя


20/11/12
5728
 i  Тема перемещена из форума «Карантин» в форум «Математика (общие вопросы)»
Формулы поправил и вернул.
Посмотрите, как синусы и косинусы пишутся.
Отдельные термы также набирайте $\TeX$ом

 Профиль  
                  
 
 Re: Матрицы преобразований в сферических координатах
Сообщение28.06.2013, 20:52 
Аватара пользователя


04/12/10
115
Вся матричная кухня работает для линейных пространств. В контексте трёхмерной графики -- это трёх(четырёх)мерное пространство. Декартовы координаты хороши тем, что множество координат образует линейное пространство, в некотором смысле, совпадающее с тем, с которым надо работать. Матрица -- это способ записи линейного преобразования, которое имеет смысл для линейных пространств. "Пространство сферических координат" таковым не является. Так что матричную мощь на него не распространить. Но преобразования, явно содержащие сферическую симметрию и без матриц выглядят просто. Даже проще. Например, для координат
$$\begin{cases}
x = r \cos \varphi \sin \theta\\
y = r \sin \varphi \sin \theta\\
z = r \cos \theta
\end{cases}$$
поворот вокруг оси $z$ воздействует очевидным образом лишь на координату $\varphi$. И это воздействие, как и для матриц, одинаково для всех точек. Только ещё проще.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group