计算机图形学(1)(基础变换矩阵:缩放,旋转,平移)

前言

开始学习图形学之后,真的后悔自己当初线性代数学的不够扎实,在写这一篇学习笔记之前,也是回看了很多关于向量、矩阵、点乘、叉乘的知识。


一.2D线性变换

1.缩放

缩放是一种针对于沿着坐标轴的变换方式,2D缩放矩阵定义如下:
在这里插入图片描述
上述效果代表了分别沿x轴和y轴进行0.5倍缩放变换

在这里插入图片描述

2.剪切

剪切是把当前2维图像的一边进行固定,然后向某个方向拉伸,相较于缩放,剪切会改变原先图像的具体样貌
在这里插入图片描述
针对上图的2D剪切变换矩阵是:

在这里插入图片描述
图像中每一个y坐标不改变,但是不同高度的x左边根据当前高度进行相应的变化,及x’=x+ay

3.旋转

旋转相较于缩放和剪切会稍微复杂一些,在旋转中,我们一般默认旋转中心是坐标轴原点
在这里插入图片描述
对于旋转,其实图像上每个点经过的变化是相同的,所以在推导时,我们可以选用图像的几个特殊顶点来进行推导,有助于快速理解。
推导过程这里不再给出,推导结果如下(如果自己推导真的没有结果,那就请记住以下结果):
在这里插入图片描述

二.2D仿射变换

1.平移

在这里插入图片描述
单纯的平移变换是非常简单容易理解的:
在这里插入图片描述

三.齐次坐标

至于为何要引出齐次坐标,原因如下:
如果我们把线性变换和仿射变换放到一起,我们不引入齐次坐标的情况下只能写成如下形式:
在这里插入图片描述
这种形式看起来并不是简便的,我们要尽量把线性变换和仿射变换放到同一个变换矩阵中。
于是我们就需要在这里引入齐次坐标的概念了。

齐次坐标的定义:
齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示。

我们用三维的向量来表示我们的2维图像变换的操作:
在这里插入图片描述
齐次坐标下,对应的缩放、旋转、平移操作

在这里插入图片描述

我们把仿射变换和线性变换用齐次坐标统一之后,很多复杂的变换,我们就可以拆分成很多步简单的变换来一步一步实现:
在这里插入图片描述
针对上图的变换,我们可以拆分成先旋转再平移的操作:

在这里插入图片描述
那么在变换的矩阵的表现上就应该是先进行旋转操作再进行平移操作(注意这里不支持交换律):
在这里插入图片描述
先进性的操作矩阵放在后操作的矩阵的右边,向量从右往左一次执行每一个矩阵变换。

针对3D变换,只需在2D变换的基础上增加一个维度,3D变换的齐次坐标也是如此。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值