Games101 计算机图形学课程笔记:Lecture 03 Transformation

2D Transformation

通过特定点就可以计算出变换矩阵。

缩放

原坐标为 [ x , y ] T [x,y]^T [x,y]T,则做如下缩放变换后可得到 x ′ = s x x'=sx x=sx y ′ = s y y'=sy y=sy

写为矩阵形式

通过改变s的取值,可以达到不同效果,也可实现两个轴不同缩放比例的效果。

镜像

剪切

类似于四边形不稳定的性质,将任意一边拉长,方形变平行四边形。

旋转

分别使用点(1,0)和(0,1)变换前后的坐标可以得到旋转矩阵。

旋转矩阵是正交矩阵,即它的逆等于它的转置。 R − θ = R θ − 1 = R θ T R_{-θ} = R_θ^{-1}=R_θ^T Rθ=Rθ1=RθT

齐次坐标

引入原因

以上所有变换为线性变换,可以表示为如下形式。

而平移变换是给向量加上一个值,不能表示为如上形式的矩阵乘法。

为了使用一个矩阵来完成所有变化,引入了齐次坐标的概念。

齐次坐标

给坐标添加一个维度。

  • 2D point = ( x , y , 1 ) T (x,y,1)^T (x,y,1)T
  • 2D vector = ( x , y , 0 ) T (x,y,0)^T (x,y,0)T
  • 3D point = ( x , y , z , 1 ) T (x,y,z,1)^T (x,y,z,1)T
  • 3D vector = ( x , y , z , 0 ) T (x,y,z,0)^T (x,y,z,0)T
    则平移变换可以表示为

这样的定义方式满足了一些性质:

其中 p o i n t + p o i n t point+point point+point最后一个维度变为2,而在齐次坐标中 ( x , y , w ) (x,y,w) (x,y,w)是一个二维的点,其点坐标为 ( x / w , y / w ) T (x/w,y/w)^T (x/w,y/w)T。因此 p o i n t + p o i n t point+point point+point得到的是这两个点的中点。

仿射变换

仿射变换 = 线性变换 + 平移变换

在齐次坐标下,各个变换可以表示为:

逆变换

变换组合

将变换组合起来可以实现各种效果,但是组合顺序非常的重要,因为矩阵乘法不满足交换律。
比如下图上面是先平移后旋转得到的效果,下面是先旋转后平移得到的效果。

先旋转45°,后沿x轴进行平移的矩阵如下:

推广开来,若干个变换表示如下:

怎样按照一个给定的点旋转物体?

3D 变换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值