2014 dxdy logo

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

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




На страницу 1, 2  След.
 
 Перебор матриц поворота
Сообщение12.11.2015, 08:11 
Аватара пользователя
Мне нужно написать алгоритм, перебирающий все возможные матрицы поворота с каким-то шагом (т.е. углом). Матрица поворота – это матрица $3\cdot3$, которая произвольным образом вращает любую точку $XYZ$ в пространстве вокруг центра координат, не меняя никакие расстояния между точками.
Я вижу самый простой алгоритм такой: сначала повернуть на угол $A$ вокруг оси $X$ (от 0 до 360), потом на угол $B$ вокруг оси $Y$, и потом на угол $C$ вокруг оси $Z$. Т.е. чтобы перебрать все возможные матрицы поворота, нужно запустить три вложенных цикла – по $A$, $B$ и $C$. Но я боюсь, как бы такой алгоритм не забыл какие-то участки в фазовом пространстве матриц поворота.

 
 
 
 Re: Перебор матриц поворота
Сообщение12.11.2015, 08:25 
Аватара пользователя
В механике для написания подобных алгоритмов давным-давно придумали углы Эйлера. :D

 
 
 
 Re: Перебор матриц поворота
Сообщение12.11.2015, 08:39 
Аватара пользователя
Brukvalub в сообщении #1072526 писал(а):
В механике для написания подобных алгоритмов давным-давно придумали углы Эйлера. :D


Посмотрел - а как определить ось N? Мне ведь нужно на втором шаге повернуть точку вокруг этой оси.

 
 
 
 Re: Перебор матриц поворота
Сообщение12.11.2015, 09:00 
Аватара пользователя
Linkey в сообщении #1072527 писал(а):
Посмотрел - а как определить ось N?

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

 
 
 
 Re: Перебор матриц поворота
Сообщение12.11.2015, 11:34 
Linkey в сообщении #1072525 писал(а):
Мне нужно написать алгоритм, перебирающий все возможные матрицы поворота с каким-то шагом (т.е. углом).

Это, грубо говоря, означает, что Вам нужно расположить точки равномерно на сфере. А это, грубо говоря, невозможно (кроме пяти известных "шагов").

 
 
 
 Re: Перебор матриц поворота
Сообщение12.11.2015, 12:57 
Аватара пользователя
Аффинные преобразования пространства (в том числе и вращения).

 
 
 
 Re: Перебор матриц поворота
Сообщение15.11.2015, 12:11 
Аватара пользователя
Углы Эйлера это три угла $\alpha$, $\beta$, $\gamma$. В каких они интервалах - все три от 0 до 360?

Судя по картинке из Википедии, возможно второй и третий угол должны быть в интервале только от 0 до 180:
Изображение

Мне по этой картинке как-то непонятно.

 
 
 
 Posted automatically
Сообщение15.11.2015, 12:38 
 i  Тема перемещена из форума «Помогите решить / разобраться (М)» в форум «Карантин»
по следующим причинам:

- неправильно набраны формулы (краткие инструкции: «Краткий FAQ по тегу [math]» и видеоролик Как записывать формулы);


Исправьте все Ваши ошибки и сообщите об этом в теме Сообщение в карантине исправлено.
Настоятельно рекомендуется ознакомиться с темами Что такое карантин и что нужно делать, чтобы там оказаться и Правила научного форума.

 
 
 
 Posted automatically
Сообщение15.11.2015, 12:55 
 i  Тема перемещена из форума «Карантин» в форум «Помогите решить / разобраться (М)»

 
 
 
 Re: Перебор матриц поворота
Сообщение15.11.2015, 13:15 
Linkey
А можно спросить, что привело к этой задаче?

-- Вс ноя 15, 2015 15:24:27 --

Linkey в сообщении #1073637 писал(а):
Углы Эйлера это три угла $\alpha$, $\beta$, $\gamma$. В каких они интервалах - все три от 0 до 360?
Косинусы этих углов («направляющие косинусы») равны компонентам вектора-оси. Каждый из них по отдельности может принимать все свои возможные $[-1;1]$, так что и углы могут принимать по отдельности значения $[0;\pi]$ (или, например, $[-\pi/2;\pi/2]$).

UPD. Мило же я перепутал те косинусы с этими. :facepalm:

 
 
 
 Re: Перебор матриц поворота
Сообщение15.11.2015, 14:15 
Аватара пользователя
arseniiv в сообщении #1073660 писал(а):
А можно спросить, что привело к этой задаче?


Мне нужно найти параллепипед минимального размера, в который помещается заданная молекула (совокупность сфер с указанными координатами и радиусами). Для этого нужно перебрать все возможные ориентации параллепипеда.

Судя по картинке, угол $\alpha$ может быть от $-\pi$ до $\pi$, разве не так?

 
 
 
 Re: Перебор матриц поворота
Сообщение15.11.2015, 15:16 
Аватара пользователя
Linkey в сообщении #1073671 писал(а):
Для этого нужно перебрать все возможные ориентации параллепипеда.

Вообще-то, нет. Тем более, что все перебрать и не получится.

 
 
 
 Re: Перебор матриц поворота
Сообщение15.11.2015, 15:24 
Linkey в сообщении #1073671 писал(а):
Судя по картинке, угол $\alpha$ может быть от $-\pi$ до $\pi$, разве не так?
Угол между двумя векторами определён с точностью до значения своего косинуса, так что $(-\pi;\pi]$ — это в два раза больше, чем надо.

UPD. Это оказалось иррелевантным.

 
 
 
 Re: Перебор матриц поворота
Сообщение15.11.2015, 15:34 
Аватара пользователя
arseniiv в сообщении #1073691 писал(а):
Угол между двумя векторами определён с точностью до значения своего косинуса, так что $(-\pi;\pi)$ — это в два раза больше, чем надо.


Если я правильно вас понимаю, речь о том, что вокруг оси Z вращение производится два раза, так что для получения матрицы поворота вокруг Z на -10 градусов надо просто взять $\alpha$ и $\gamma$ равными 175 градусов. А для повотора вокруг остальных осей достаточно интервала от 0 до 180 градусов.

 
 
 
 Re: Перебор матриц поворота
Сообщение15.11.2015, 15:50 
Я тут ерунду про косинусы и углы Эйлера написал, кажется. :facepalm:

 
 
 [ Сообщений: 17 ]  На страницу 1, 2  След.


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