瀏覽代碼

Fix QuaternionToMatrix returning transposed result. (#1793)

pull/1797/head
Hristo Stamenov 3 年之前
committed by GitHub
父節點
當前提交
beeac18eb1
沒有發現已知的金鑰在資料庫的簽署中 GPG 金鑰 ID: 4AEE18F83AFDEB23
共有 1 個檔案被更改,包括 22 行新增17 行删除
  1. +22
    -17
      src/raymath.h

+ 22
- 17
src/raymath.h 查看文件

@ -1389,23 +1389,28 @@ RMDEF Quaternion QuaternionFromMatrix(Matrix mat)
RMDEF Matrix QuaternionToMatrix(Quaternion q)
{
Matrix result = MatrixIdentity();
float a2 = 2*(q.x*q.x), b2=2*(q.y*q.y), c2=2*(q.z*q.z); //, d2=2*(q.w*q.w);
float ab = 2*(q.x*q.y), ac=2*(q.x*q.z), bc=2*(q.y*q.z);
float ad = 2*(q.x*q.w), bd=2*(q.y*q.w), cd=2*(q.z*q.w);
result.m0 = 1 - b2 - c2;
result.m1 = ab - cd;
result.m2 = ac + bd;
result.m4 = ab + cd;
result.m5 = 1 - a2 - c2;
result.m6 = bc - ad;
result.m8 = ac - bd;
result.m9 = bc + ad;
result.m10 = 1 - a2 - b2;
float a2 = q.x * q.x;
float b2 = q.y * q.y;
float c2 = q.z * q.z;
float ac = q.x * q.z;
float ab = q.x * q.y;
float bc = q.y * q.z;
float ad = q.w * q.x;
float bd = q.w * q.y;
float cd = q.w * q.z;
result.m0 = 1 - 2 * (b2 + c2);
result.m1 = 2 * (ab + cd);
result.m2 = 2 * (ac - bd);
result.m4 = 2 * (ab - cd);
result.m5 = 1 - 2 * (a2 + c2);
result.m6 = 2 * (bc + ad);
result.m8 = 2 * (ac + bd);
result.m9 = 2 * (bc - ad);
result.m10 = 1 - 2 * (a2 + b2);
return result;
}

Loading…
取消
儲存