forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   Формулу вращения вокруг произвольной оси (http://forum.boolean.name/showthread.php?t=7210)

Atomikc 18.10.2008 17:52

Формулу вращения вокруг произвольной оси
 
Формулу вращения вокруг произвольной оси, имея Угол и Вектор, все это надо представить в матричном виде, вот что я написал:
-> float Angle, const YVECTOR3 & V, YMATRIX & M
Матрица 4x4, Вектор 3х мерный
Вот формула:
float nx2 = V.x * V.x;
float ny2 = V.y * V.y;
float nz2 = V.z * V.z;

float nxy = V.x * V.y;
float nxz = V.x * V.z;
float nyz = V.y * V.z;

float nxs = V.x * sin(Angle);
float nys = V.y * sin(Angle);
float nzs = V.z * sin(Angle);

float oca = 1 - cos(Angle);

M = YMATRIX(nx2 + (1 - nx2) * cos(Angle), nxy * oca * nzs, nxz * oca + nys, 0.0f,
nxy * oca + nzs, ny2 * (1 - ny2) * cos(Angle), nyz * oca - nxs, 0.0f,
nxz * oca - nyz, nyz * oca + nxs, nz2 + (1 - nz2) * cos(Angle), 0.0f,
0.0f, 0.0f, 0.0f, 1.0f);
Мне этой вещи не хватает, чтобы камеру поворачивать вверх и вниз

Atomikc 21.10.2008 12:39

Ответ: Формулу вращения вокруг произвольной оси
 
Никто не знает чтоль?????

johnk 21.10.2008 18:01

Ответ: Формулу вращения вокруг произвольной оси
 
http://www.siggraph.org/education/ma...ran/3drota.htm
Внизу.

alcoSHoLiK 31.10.2008 09:02

Ответ: Формулу вращения вокруг произвольной оси
 
Вложений: 1
Вот как матрица вращения выглядит по-нормальному)

u = (u1, u2, u3) - единичный вектор, вокруг которого производится вращение;
c = cos(A)
s = sin(A)
A - угол поворота в радианах.


Часовой пояс GMT +4, время: 05:42.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot