OpenGL量身定做数学库:GLM

OpenGL没有自带任何的矩阵和向量知识,但是有专门为OpenGL量身定做的数学库GLM

GLM是OpenGL Mathematics的缩写,它是一个只有头文件的库,也就是说我们只需包含对应的头文件就行了,不用链接和编译

下载地址:https://github.com/g-truc/glm
image-20210512124535732
下载整个项目,解压之后,将下面的glm文件夹放在第三方库的文件夹includes下

GLM库从0.9.9版本起,默认会将矩阵类型初始化为一个零矩阵(所有元素均为0),而不是单位矩阵(对角元素为1,其它元素为0)。如果你使用的是0.9.9或0.9.9以上的版本,你需要将所有的矩阵初始化改为 glm::mat4 mat = glm::mat4(1.0f)。(可以自己测试,我们现在最新下载的一般都是大于0.9.9版本的)

#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>

int main()
{
    glm::vec4 vec(1.0f, 0.0f, 0.0f, 1.0f); // 列向量(1, 0, 0, 1)
    // 0.9.9及以上版本
    glm::mat4 trans = glm::mat4(1.0f);  // 单位矩阵

    // 传递单位矩阵和一个位移向量,这个函数时构造一个用来位移的向量
    trans = glm::translate(trans, glm::vec3(1.0f, 1.0f, 0.0f));
    /*
    单位举证每一列和vec3的每一个数相乘,返回的就是位移矩阵
    */
    vec = trans * vec; // trans为位移矩阵
    std::cout << vec.x << vec.y << vec.z << std::endl; // 210
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值