2014 dxdy logo

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

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


Правила форума


В этом разделе нельзя создавать новые темы.



Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Перебор матриц поворота
Сообщение12.11.2015, 08:11 
Аватара пользователя


01/09/13

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

 Профиль  
                  
 
 Re: Перебор матриц поворота
Сообщение12.11.2015, 08:25 
Заслуженный участник
Аватара пользователя


01/03/06
13626
Москва
В механике для написания подобных алгоритмов давным-давно придумали углы Эйлера. :D

 Профиль  
                  
 
 Re: Перебор матриц поворота
Сообщение12.11.2015, 08:39 
Аватара пользователя


01/09/13

711
Brukvalub в сообщении #1072526 писал(а):
В механике для написания подобных алгоритмов давным-давно придумали углы Эйлера. :D


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

 Профиль  
                  
 
 Re: Перебор матриц поворота
Сообщение12.11.2015, 09:00 
Заслуженный участник
Аватара пользователя


01/03/06
13626
Москва
Linkey в сообщении #1072527 писал(а):
Посмотрел - а как определить ось N?

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

 Профиль  
                  
 
 Re: Перебор матриц поворота
Сообщение12.11.2015, 11:34 
Заслуженный участник


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

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

 Профиль  
                  
 
 Re: Перебор матриц поворота
Сообщение12.11.2015, 12:57 
Заслуженный участник
Аватара пользователя


23/07/05
17976
Москва
Аффинные преобразования пространства (в том числе и вращения).

 Профиль  
                  
 
 Re: Перебор матриц поворота
Сообщение15.11.2015, 12:11 
Аватара пользователя


01/09/13

711
Углы Эйлера это три угла $\alpha$, $\beta$, $\gamma$. В каких они интервалах - все три от 0 до 360?

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

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

 Профиль  
                  
 
 Posted automatically
Сообщение15.11.2015, 12:38 


20/03/14
12041
 i  Тема перемещена из форума «Помогите решить / разобраться (М)» в форум «Карантин»
по следующим причинам:

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


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

 Профиль  
                  
 
 Posted automatically
Сообщение15.11.2015, 12:55 


20/03/14
12041
 i  Тема перемещена из форума «Карантин» в форум «Помогите решить / разобраться (М)»

 Профиль  
                  
 
 Re: Перебор матриц поворота
Сообщение15.11.2015, 13:15 
Заслуженный участник


27/04/09
28128
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 
Аватара пользователя


01/09/13

711
arseniiv в сообщении #1073660 писал(а):
А можно спросить, что привело к этой задаче?


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

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

 Профиль  
                  
 
 Re: Перебор матриц поворота
Сообщение15.11.2015, 15:16 
Заслуженный участник
Аватара пользователя


01/09/13
4656
Linkey в сообщении #1073671 писал(а):
Для этого нужно перебрать все возможные ориентации параллепипеда.

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

 Профиль  
                  
 
 Re: Перебор матриц поворота
Сообщение15.11.2015, 15:24 
Заслуженный участник


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

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

 Профиль  
                  
 
 Re: Перебор матриц поворота
Сообщение15.11.2015, 15:34 
Аватара пользователя


01/09/13

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


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

 Профиль  
                  
 
 Re: Перебор матриц поворота
Сообщение15.11.2015, 15:50 
Заслуженный участник


27/04/09
28128
Я тут ерунду про косинусы и углы Эйлера написал, кажется. :facepalm:

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.

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



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

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


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

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