Получение матрицы вращения из заданного вектора
От: Andis  
Дата: 30.06.05 15:43
Оценка:
Есть вектор. Каким образом можно получить матрицу вращения этого вектора?
Не важны углы поворота, нужна именно матрица.
Re: Получение матрицы вращения из заданного вектора
От: Mab Россия http://shade.msu.ru/~mab
Дата: 30.06.05 15:57
Оценка:
A>Есть вектор. Каким образом можно получить матрицу вращения этого вектора?
A>Не важны углы поворота, нужна именно матрица.

Вращения куда и зачем? Ничего не понятно...
Матрица -- это координатная запись линейного преобразования пространства. Какое преобразование требуется?
Re: Получение матрицы вращения из заданного вектора
От: FDSC Россия consp11.github.io блог
Дата: 30.06.05 16:04
Оценка:
Здравствуйте, Andis, Вы писали:

A>Есть вектор. Каким образом можно получить матрицу вращения этого вектора?

A>Не важны углы поворота, нужна именно матрица.


Да, точно, не понятно. Может имеется ввиду матрица направляющих косинусов?
Re: Получение матрицы вращения из заданного вектора
От: Duha  
Дата: 30.06.05 16:07
Оценка:
Здравствуйте, Andis, Вы писали:

A>Есть вектор. Каким образом можно получить матрицу вращения этого вектора?

A>Не важны углы поворота, нужна именно матрица.


Функция, которой пользуюсь я .... создание матрицы поворота на угол angle (в радианах), вокруг вектора Vec.
Система координат — правая, для преобразования какого-то вектора A в A' необходимо умножить его на эту матрицу M
следующим образом:
A' = MA (как в учебнике математики, а не в DirectX)

Матрица M имеет вид
e00 e01 e02
e10 e11 e12
e20 e21 e22



inline void S3DLMatrix3::RotationAxis(S3DLVector3& Vec,float angle)
{
S3DLVector3 T = Vec;
T.normalize();
float C = cos(angle);
float S = sin(angle);
float X = T.x;
float Y = T.y;
float Z = T.z;

e00 = X*X + (1-X*X)*C;
e01 = X*Y*(1-C) + Z*S;
e02 = X*Z*(1-C) — Y*S;

e10 = X*Y*(1-C) — Z*S;
e11 = Y*Y + (1-Y*Y)*C;
e12 = Y*Z*(1-C) + X*S;

e20 = X*Z*(1-C) + Y*S;
e21 = Y*Z*(1-C) — X*S;
e22 = Z*Z + (1-Z*Z)*C;
}
разработка 3d сканеров www.volumetechnologies.ru
Re[2]: Получение матрицы вращения из заданного вектора
От: Andis  
Дата: 30.06.05 16:42
Оценка:
я наверное неправильно выразился.
вообщем если по анлийски то Calculating a Rotation Matrix Based on Location/Target
я нашел: http://www.gamedev.net/reference/articles/article665.asp
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.