OpenGL


参考 总结GLM库中glm::transform(位移), glm:scale(缩放), glm::rotate(旋转)

OpenGl

glm:rotate(旋转)

函数功能,将物体进行旋转,如下:

//目的:将物体 沿z轴 逆时针 旋转90度,创建其变换矩阵
//1、初始化一个单位矩阵
glm::mat4 trans = glm::mat4(1.0f);
//2、用glm::radians将角度转化为弧度,glm::vec3(0.0, 0.0, 1.0)表示沿Z轴旋转
trans = glm::rotate(trans, glm::radians(90.0f), glm::vec3(0.0, 0.0, 1.0));

第一个参数是要旋转的物体,在这里也就是旋转矩阵(通过将物体坐标乘以旋转矩阵,物体相当于旋转,类似于一个 矩阵乘以若干个初等矩阵。)
第二个参数是旋转角度,由于glm只接收弧度,故将角度转化成弧度计算。
第三个参数是一个三维向量,分别代表x、y、z轴。当对应值为1时,表示将轴旋转。

glm:translate(平移)

函数功能,将物体平移,如下:

//目的:把一个向量(1, 0, 0)位移(1, 1, 0)个单位
//1、定义该向量 vec
glm::vec4 vec(1.0f, 0.0f, 0.0f, 1.0f);
// 2、初始化一个单位矩阵
// glm::mat4 trans = glm::mat4(1.0f)
// 3、将向量(1, 1, 0)与单位矩阵相乘
trans = glm::translate(trans, glm::vec3(1.0f, 1.0f, 0.0f));
//4、将结果再与最初的向量相乘,来对其进行位移改变
vec = trans * vec;

函数大致思想在于,首先创建一个位移矩阵,然后将位移矩阵和目标矩阵做点乘,实现平移。和矩阵乘以初等矩阵差不多。
第一个参数是单位矩阵。
第二个向量,也就是要平移多少,参数分别代表x、y、z轴。

glm:scale(缩放)

函数功能,将物体进行缩放,如下:

//目的:将物体缩放为原来的0.5倍,创建其变换矩阵
//1、初始化一个单位矩阵
glm::mat4 trans = glm::mat4(1.0f);
//2、用glm::vec3(0.5, 0.5, 0.5)乘以该矩阵对其进行缩放
trans = glm::scale(trans, glm::vec3(0.5, 0.5, 0.5)); 

第一个参数也就是单位矩阵。
第二个向量,分别代表x、y、z。参数代表缩放的倍数。这个比较简单。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值