zoukankan      html  css  js  c++  java
  • 四元数转化为矩阵

     1 /**
     2  *   /  R[ 0]   R[ 1]   R[ 2]   0  
     3  *   |  R[ 4]   R[ 5]   R[ 6]   0  |
     4  *   |  R[ 8]   R[ 9]   R[10]   0  |
     5  *     0       0       0       1  /
     6  */
     7 + (GLKMatrix4)getRotationMatrixFromQuaternion:(CMQuaternion*)quaternion{
     8     float xx = quaternion->x * quaternion->x;
     9     float yy = quaternion->y * quaternion->y;
    10     float zz = quaternion->z * quaternion->z;
    11     float xy = quaternion->x * quaternion->y;
    12     float wz = quaternion->w * quaternion->z;
    13     float wy = quaternion->w * quaternion->y;
    14     float xz = quaternion->x * quaternion->z;
    15     float yz = quaternion->y * quaternion->z;
    16     float wx = quaternion->w * quaternion->x;
    17     
    18     float r00 = 1 - 2 * (yy + zz);
    19     float r01 = 2 * (xy - wz);
    20     float r02 = 2 * (wy + xz);
    21     float r03 = 0;
    22     
    23     float r10 = 2 * (xy + wz);
    24     float r11 = 1 - 2 * (xx + zz);
    25     float r12 = 2 * (yz - wx);
    26     float r13 = 0;
    27     
    28     float r20 = 2 * (xz - wy);//不是 xy - wy
    29     float r21 = 2 * (yz + wx);
    30     float r22 = 1 - 2 * (xx + yy);
    31     float r23 = 0;
    32     
    33     float r30 = 0;
    34     float r31 = 0;
    35     float r32 = 0;
    36     float r33 = 1;
    37     
    38     return GLKMatrix4Make(r00,r01,r02,r03,
    39                       r10,r11,r12,r13,
    40                       r20,r21,r22,r23,
    41                       r30,r31,r32,r33);
    42 }

    本方法是基于Objective-C实现。

  • 相关阅读:
    对我影响最大的三位导师
    global与nonlocal
    random模块
    time模块
    datetime模块
    sys模块
    os模块
    collection模块
    hashlib模块
    pickle模块
  • 原文地址:https://www.cnblogs.com/calence/p/6091129.html
Copyright © 2011-2022 走看看