|
|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/27843c510378.html, оценка из 5, голосов 10
|