2014 dxdy logo

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

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




 
 Повернуть трехмерную фигуру (вокруг произвольной линии)
Сообщение22.01.2007, 21:13 
Есть некая трехмерная фигура, пускай с координатами $(x_1,y_1,z_1), (x_2,y_2,z_2), (x_3,y_3,z_3)$. Требуется ее развернуть вокруг линии, проходящей через точку $(0,0,0)$ под углами \alpha к OX, \beta к OY, \gamma к OZ
В принципе, я понимаю, что решение строиться из последовательных операций над каждой точкой фигуры, но совсем запутался, у мну получается, что каждую точку надо умножить на 7 матриц :( поделитесь мыслями пожалуйста

 
 
 
 
Сообщение22.01.2007, 22:17 
Аватара пользователя
Можно сначала перейти в новую систему координат, в которой, скажем, ось OZ совпадает с осью вращения-такой переход осуществляется умножением на одну матрицу: матрицу, обратную к матрице перехода, затем совершить "двумерный" поворот вокруг оси OZ в новой системе координат-это умножение на матрицу поворота, а затем вернуться к старой системе координат-такой переход осуществляется умножением на исходную матрицу перехода.

 
 
 
 Re: Повернуть трехмерную фигуру
Сообщение23.01.2007, 00:46 
Аватара пользователя
Riddick писал(а):
Есть некая трехмерная фигура, пускай с координатами $(x_1,y_1,z_1), (x_2,y_2,z_2), (x_3,y_3,z_3)$. Требуется ее развернуть вокруг линии, проходящей через точку $(0,0,0)$ под углами \alpha к OX, \beta к OY, \gamma к OZ


Посмотрите здесь. Там есть готовая матрица.

 
 
 
 
Сообщение23.01.2007, 15:09 
Отождествим точку $(x,y,z)$ с кватернионом $W = (0,x,y,z)$ пусть теперь Вы хотите повернуть на угол $\theta$
тогда образ будет получен по формуле
$ q*W*\overline q$
где $q=(\cos{\theta \over 2}, \sin {\theta \over 2} * cos \alpha, \sin {\theta \over 2} * cos \beta, \sin {\theta \over 2} * cos \gamma)$

$\overline q$ - cопряженный кватернион

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

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


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