Lecture 03 Introduction to Computer Graphics
变换
-
为什么学习变换:
- 模型变换
- 视图变换
- 把三维世界变成二维图片
-
2D变换
-
Scale Transformations
等大小变换
非等大小变换:
-
Reflection Transformations
-
Shear Transformation:找到x,y两者变换前后的关系,再使用矩阵相乘。左乘矩阵行变换、右乘矩阵列变换。
-
Rotate Transformation (如果不说绕什么旋转,默认绕原点旋转;如果不说,默认逆时针旋转):
使用两个特殊的点,比如(1,0),(0,1)来计算得到矩阵即可:
-
对于线性变换都可以表示称矩阵形式
-
-
齐次坐标(解决平移问题)
-
为什么要引入齐次坐标(所有的变换都可以写成矩阵乘以一个向量的形式)
-
-
平移变换这种方式使用矩阵(线性变换)不能直接表示
-
引入齐次坐标可以表示平移,但是它不好的地方在哪里
-
-
解决方案
-
为什么是 ( x , y , 1 ) T (x,y,1)^T (x,y,1)T代表点,而 ( x , y , 0 ) T (x,y,0)^T (x,y,0)T代表向量。向量平移变换之后不变,第三维设置为0的话,这样恰好可以第三维一直维持为0。
-
向量加上向量还是向量本身,一个点减去另一个点是一个向量,点加上向量是一个点,点加上点是它的重点。
-
-
仿射变换
-
2D Transformations
-
引入了齐次坐标的话,我们可以直接全部使用矩阵来表示全部2D变换
不一定齐次坐标都是加入(0,0,1)。还可能是其他变换
-
-
-
逆变换(乘以变换的逆矩阵)
-
composite 变换
-
如何实现图中的变换 -
变换的顺序十分重要
-
如果是先平移后旋转,不能实现如图变换(旋转默认是原点旋转)
-
如果是先旋转后平移,可以实现如图变换。原因:矩阵没有交换律(🐂大了)
-
转换的矩阵为(确定了顺序之后,从矩阵的右边计算到左边):
-
-
通过上述表换之后,我们可以使用矩阵进行任意变换的组合(数学上,矩阵不满足交换律,但是满足的是结合率,因此可以从 A n A_n An计算到 A 1 A_1 A1):
-
拆解变换,计算矩阵式从右到左:
-
-
推广到3维空间:
-
答案:线性变换后平移,参考之前的2D变换方式