闫令琪计算机图形学GAMES101笔记-02变换

闫令琪计算机图形学GAMES101的b站课程地址:Lecture 03 Transformation_哔哩哔哩_bilibili

图片来自于b站课程截图

1 二维变换

1.1线性变换

        通过矩阵可以对图形(/坐标)进行变换操作。

        变换后的新坐标可以通过以下表示(维度相同的矩阵):

1.1.1 缩放

        S为缩放矩阵,取s=0.5,即可实现将原图像x,y缩小。

        也可实现不均匀的缩放:

1.1.2 反转

        对x轴取负操作,即可实现反转(以x轴为基准翻转),同理y轴操作可实现上下反转

1.1.3 切变(让图变形)

        坐标系中,图案y轴方向值不变(因此缩放矩阵不对y轴进行处理),x轴方向上,图案(整个方形,不是圆形图案)底部不变,顶部向右移动了a。中间位置(鼠标箭头)坐标(a/2,1/2),水平方向移动了a*y个距离。即:新的x=旧的x+ay,因此矩阵S的第0行取值为1,a。

(我的理解:坐标在x轴方向上移动距离沿着t边的斜率变化,推出y=\frac{1}{a}x,x=ay,移动了ay距离。)

1.1.4 旋转

        默认绕原点,逆时针。

        下图旋转矩阵是什么呢?

        旋转矩阵如下:(哇!上难度了。。。)

        求旋转矩阵关键在于找到旋转前后的坐标关系(找特殊点)!(b站课程p3的18分)

 (下节课补充的内容)那么旋转-\Theta角度,矩阵应该如何表示呢?---在旋转中,旋转矩阵的逆=旋转矩阵的转置。-正交矩阵

1.2 平移变换

        如果想实现平移变换,应该怎样做呢?--->将x,y平移⬇

        在二维坐标系中,只能这样表示(此类表示形式的变换可称为仿射变换):

        需要额外加一个向量。。。

能不能将实现这两种变换的方法统一呢?

下面请看⬇

齐次坐标!!!

1.3 齐次坐标

        人们发现,将二维的点坐标后添加一个1,二维的向量坐标后添加一个0,如下:

        在变换时,依旧用线性变换中---矩阵×向量---的形式,即可实现平移变换:

为什么要把点和向量区别对待呢?-------->因为向量具有平移不变性,当对向量平移处理时,希望他还是他自己(上述式子手算一下就知道了)。

区别对待还能保证以下是正确运算的

向量+向量 = 向量

点-点 = 向量

点+向量 = 点

点+点 = 中点   ,,(例:(1,2,1)+(3,4,1)=(4,6,2)=》(2,3,1)->因为,对于点可以通过除法将w的位置表示成1。

 对于以下形式可称之为仿射变换

变换的规律:仿射变换--矩阵最后一行是0,0,1

缩放:斜对角

旋转:小矩阵

平移:最后一列

 1.4 逆变换

变换之后再变回去---对应着逆矩阵

1.5 组合变换

复杂的变换可以通过组合简单的变换得到。

1.以下变换如何得到?

先旋转(默认旋转是关于原点的)--->再平移(变换顺序非常重要)

 矩阵变换如下,图案上的点先左乘旋转矩阵,再乘平移矩阵

 由于矩阵的结合率,仅用3*3的矩阵就可以表示复杂的变换

变换的分解

问题:以任意点c为中心进行旋转    --------可以分解为⬇

1.先把点c移到原点---->所有点都平移到-c

2.旋转

3.再把点移回c

2 三维变换

与二维变换同理

 用4*4矩阵,仿射变换(最后一行依旧是0,0,0,1)

 如果线性变换,平移变换对应位置都有值,先线性再平移

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值