Формулу вращения вокруг произвольной оси
Формулу вращения вокруг произвольной оси, имея Угол и Вектор, все это надо представить в матричном виде, вот что я написал:
-> 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); Мне этой вещи не хватает, чтобы камеру поворачивать вверх и вниз |
Ответ: Формулу вращения вокруг произвольной оси
Никто не знает чтоль?????
|
Ответ: Формулу вращения вокруг произвольной оси
|
Ответ: Формулу вращения вокруг произвольной оси
Вложений: 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