Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Dmitry Kalinin                       2:5009/5.43    25 Jan 2002  11:03:36
 To : Nikolaj Kovaltchuk
 Subject : Re: Поворот осей в пространстве
 -------------------------------------------------------------------------------- 
 
 
 22 Янв 02 14:09, Nikolaj Kovaltchuk -> All:
 
  NK> _Hу что,_ */All./* /_Hе ждал? А я тут-как-тут..._/
 
  NK> Есть вектоpа: V=(VX, VY, VZ), R=(RX, RY, RZ)
  NK> Вектоp V задан в исходной системе кооpдинат, вектоp R показывает новое
  NK> напpавление оси OZ в той же системе. Hужно пpивести вектоp V к новой
  NK> системе кооpдинат. Можно пpосто кинуть в меня фоpмулами тpехмеpного
  NK> повоpота: если бы я их сам нашел, то не спpашивал бы.
 
     Очень просто. Базовый поворот в матричном виде выглядит как
     |cos(x)     sin(x)|
     |-sin(x)    cos(x)|
     Для 2D пространств матрица "расширяется" на один элемент
     |cos(x)     sin(x)    0|
     |-sin(x)    cos(x)    0|
     |0          0         1|
     Для 3D чуть сложней, ибо вращение может происходить вдоль одной из трех
 осей.
     Представь что у тебя есть матрица 4x4 с координатами точки
     |x  0   0   0|
     |0  y   0   0|
     |0  0   z   0|
     |0  0   0   1|
     Тогда вращение вдоль одной из трех осей можно представить как врещение в 2D,
 выкинув из рассмотрения указанную координату (x, y или z)
     Hапример, вращени вдоль оси x выглядит как
     |1  0   0   0|      |1  0       0       0|
     |0  y   0   0| ->   |0  cos(x)  sin(x)  0|
     |0  0   z   0|      |0  -sin(x) cos(x)  0|
     |0  0   0   1|      |0  0       0       1|
     Чтобы составить матрицу вращения вдоль любой из трех осей просто выкидываешь
 строку и столбец из матрицы 4x4, и получаешь матрицу 3x3, которую заполняешь как
 для 2D случая. Выкидываемый элемент устанавливается в 1. Hапример для y
     |x  0   0   0|      |x  -   0   0|      |x  0   0|
     |0  y   0   0| ->   |-  -   -   -| ->   |0  z   0| ->
     |0  0   z   0|      |0  -   z   0|      |0  0   1|
     |0  0   0   1|      |0  -   0   1|
 
     |cos(x)     sin(x)    0|    |cos(x)     0   sin(x)  0|
     |-sin(x)    cos(x)    0| -> |0          1   0       0|
     |0          0         0|    |-sin(x)    0   cos(x)  0|
                                 |0          0   0       1|
 и для z
 |cos(x)     sin(x)  0   0|
 |-sin(x)    cos(x)  0   0|
 |0          0       1   0|
 |0          0       0   1|
 
     Hо тебе скорей всего нужно не вращение вдоль осей, а переход к другой СК.
 Dmitry
 ... "Кто ты" (с) Ария.
 --- 0f 0f 0e 0e 0e 0e 0c 0c 0a 09 09 06 03 00 00 00 ДВБВДБДДВДДДДДБДДДДД
  * Origin: mailto: dim0k@mail.ru (2:5009/5.43)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Поворот осей в пространстве   Nikolaj Kovaltchuk   22 Jan 2002 15:09:59 
 Re: Поворот осей в пространстве   Sergey Voloshchuk   24 Jan 2002 10:44:43 
 Поворот осей в пространстве   Nikolaj Kovaltchuk   25 Jan 2002 08:17:01 
 Поворот осей в пространстве   Max Alekseyev   24 Jan 2002 00:55:34 
 Поворот осей в пространстве   Dan Raskovalov   24 Jan 2002 11:08:44 
 Re: Поворот осей в пространстве   Dmitry Kalinin   25 Jan 2002 11:03:36 
 Поворот осей в пространстве   Nikolaj Kovaltchuk   26 Jan 2002 09:32:07 
Архивное /ru.algorithms/27843c510378.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional