glm 中乘法和求逆运算的结果

 

    // 5  6 * 1 3
    //        2 4
    glm::vec2 x(5, 6);
    glm::mat2 m(1, 2, 3, 4); //memory locates 1 2 3 4 too
    printf("X: %.2f %.2f\n", x[0], x[1]);
    printMat2(m, "M");
    glm::vec2 y0 = x * m;
    glm::vec2 y1 = m * x;
    printf("X * M = %.2f %.2f\n", y0[0], y0[1]);
    printf("M * X = %.2f %.2f\n", y1[0], y1[1]);

    m = glm::inverse(m);
    printMat2(m, "M_inverse");

 

打印结果:

X: 5.00 6.00
M :000000098DD6F7C0
1.0000000 2.0000000 
3.0000000 4.0000000 

X * M = 17.00 39.00
M * X = 23.00 34.00
M_inverse :000000098DD6F7E0
-2.0000000 1.0000000 
1.5000000 -0.5000000 

 

注意: 如果有一个矩阵如此声明, glm::mat2 m(1, 2, 3, 4);

实际上, 矩阵并不是长这样     1 2 \n 3 4, 实际上是   1  3  \n 2  4, m[0] == 1 2  m[1]  = 3 4 , 这样做的主要原因是为了加速计算

 

X * M 实际上不是  X * M    而是  XT  * M

 

原文地址:http://www.cnblogs.com/luoyinjie/p/16833576.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性