矩阵的变换

在OpenGL图形绘制过程中,常常需要对相应元素的坐标进行变换产生动画效果,而元素的坐标则是用矩阵来表示。因此在本文当中记录一下矩阵的变换。欢迎光临我的个人网站Orient一起讨论学习。这里是我的GitHub,如果您喜欢,不妨点个 star。☺

矩阵与向量相关概念在此不做解释了,如果看官不了解,可自行百度查询。在此仅记录缩放、位移和旋转的变换。

在OpenGL中,一般使用四维向量来描述对应元素的 x轴y轴z轴 位置以及 alpha 值。

缩放

对一个向量进行缩放(Scaling)就是对向量的长度进行缩放,向量方向保持不变。

假设我们要使向量 (x, y, z, 1)x 值缩放 S1 倍, y 值缩放 S2 倍, z 值缩放 S3 倍。我们需设置这么一个缩放矩阵:


缩放只需要用缩放矩阵乘上需要缩放的向量即可:


位移

位移(Translation)是在原始向量的基础上加上另一个向量从而获得一个在不同位置的新向量的过程

我们把位移向量表示为: (Tx, Ty, Tz,) ,定义位移矩阵矩阵为:


旋转

下面给出几种沿不同轴旋转的矩阵(选装角度为θ):

沿x轴旋转


沿y轴旋转


沿z轴旋转


沿任一轴 (Rx, Ry, Rz) 旋转


组合变换

组合变换只需要依次乘上变换矩阵即可。(从右往左乘)

例如:将向量 (x, y, z) 先缩放2倍,再位移 (1, 2, 3) 个单位:

变换矩阵如下:


最终结果如下:


即向量 (x, y, z) 先缩放了2倍,然后位移了 (1, 2, 3) 个单位。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值