线代基础之矩阵变换

📕二维矩阵变换

假设有一个向量 vector = [x,y]T,我们都可以找到一个矩阵N,使得变换后的矩阵vector = N*vector,我们可以得到以下变换矩阵N。

1.缩放变换

如以下变换形式:
缩放变换
得到的变换公式为:
在这里插入图片描述
通过以上公式能使得向量 vector 缩放s倍,当然左上角s1可以不等于右下角s2,s1和s2分别代表对x轴的缩放以及对y轴的缩放。

2.希尔变换(shear matrix)

在这里插入图片描述
推出的公式为:
在这里插入图片描述
在上述例子变换的关键点是y轴坐标始终不会变化,而x轴坐标随着y的增大而等比例增大,所以我们只要试图找到矩阵N与vector 相乘后能得到与y轴相关联的x值即可得出公式。
(y随x增大而增大的公式可以类比推出)

3.旋转变换

这里规定旋转变换都是基于原点进行旋转。
在这里插入图片描述
得到的旋转矩阵为:
在这里插入图片描述
推导过程
已知前提:图片上所有的点经过求得矩阵变换后都能得到旋转后图片上的点
在此基础上我们可以选择两个特殊的点分别求得2×2矩阵的四个值。这里选择(0,1)点和(1,0)点去求值。
我们知道在旋转变换中,无论如何旋转,图片的边长是不会变的,而我们知道图片的边长,以及旋转的角度,就能得到旋转后点的坐标。
以(1,0)点为例 ,旋转后:
y轴坐标为:边长 a 乘以 sin θ \theta θ
x轴坐标为:边长 a 乘以 cos θ \theta θ

代入公式可得:
在这里插入图片描述
同理 以(0,1)点带入可得
y轴坐标为: a 乘以 cos θ \theta θ
x轴坐标为: a 乘以 -sin θ \theta θ
可以求出B = -sin θ \theta θ,D = cos θ \theta θ

🔍为什么要用齐次坐标

首先思考一下平移变换:
在这里插入图片描述
我们可以很简单得到前后坐标的公式:
x = x + tx , y = y + ty
而这样一个公式,我们是没法通过二维矩阵表达出来的。
在这里插入图片描述
而如果我们把二维矩阵升级为三维矩阵,通过三维矩阵就能表达出平移变换的公式:
在这里插入图片描述
这就是引入齐次坐标的目的,我们不希望平移运算这么一种简单的变换过程,还要我们去对它来进行特殊的处理,它应该和其它变换方式一样,可以通过矩阵乘法来表示出来,因此,我们进行二维变换过程时,会使用三维矩阵来运算,同理,如果进行三维矩阵变换,我们会使用四维矩阵来进行运算。

💪齐次坐标的特点

1.外观特点

在这里插入图片描述
我们可以发现,通过齐次坐标表达的n维矩阵往往最下面一行是n个0加上最后一位是1,而最后一列往往只用于平移变换。

2.表达点和向量的区别

在这里插入图片描述
可以注意到:齐次坐标中表示点的矩阵最后一维会给它添加一位1,而表示向量的最后一维会给它添加一位0,这是根据向量的两个性质得出来的。
其一是一个向量无论如何平移它都不会发生改变,这使得向量的表达最后一位必须是0,另一个是向量可以表示为两个点相减,因此当点的最后一位是1时向量最后一位肯定是0
这里没理解为什么不让点的最后一位也为0,通过查阅资料得到:

“齐次坐标表示是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换。”—— F.S. Hill, JR

“能够用来明确区分向量和点”,由这句话我们可以知道,点和向量的最后一维分别设置为1和0是为了明确区分点和向量。考虑一个问题:如果我写出一个代数分量表达(1, 4, 7),谁知道它是个向量还是个点!

3.点与点相加的特殊性

由于齐次坐标中最后一位表示一定为1,所以:
在这里插入图片描述
为了是最后一位标准化,往往当最后一位为w时,x和y都会除以w以使得最后一位为1。而根据这个我们可以知道齐次坐标中两个点相加得到的坐标是两个点的中点

4.复合矩阵变换

在这里插入图片描述
以上公式代表,让(x, y, 1)T按照A1, A2, A3……An的变换顺序进行变换(由于矩阵乘法不具有交换律,因此一定注意顺序,且在变换过程中应先进行线性变换,再进行平移变换

🍅左下坐标不在原点时的矩阵变换:
在这里插入图片描述
可以考虑先将左下坐标平移至坐标系原点然后再进行相关变换,最后再平移回去。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值