Games101-系列课程笔记-Lecture-03

Games101-系列课程笔记


本篇博客图片来自Games101-闫令琪(Lecture 03)讲义,有兴趣的小伙伴可前往GAMES101官网下载相关内容。GAMES101官网


为什么学习变换

  • 模型变换(Modeling)
  • 视口变换(Viewing)

缩放(Scale)变换

缩放变换

缩放变换可以是对图形等比例缩放,也可以是对某一轴进行缩放。


剪切(Shear)变换

剪切变换


旋转(Rotation)变换

旋转变换
其中,θ代表逆时针旋转角度。

旋转默认是以原点为旋转中心,逆时针方向为旋转角正方向。


线性变换

  • 定义:可以将变换后的坐标用变换前的坐标线性表示的一种变换。
  • 代数表达:
    线性变换代数表达
  • 矩阵表达:
    线性变换矩阵表达

平移变换

平移变换

  • 矩阵表达:
    平移变换矩阵表达
    形如如下形式的变换称为仿射变换,平移是仿射变换的一种特殊形式(a=1,b=0,c=0,d=1):仿射变换
    我们发现仿射变换前后的坐标无法表达成如下形式(即线性变换形式):
    线性变换

因而此时需要使用齐次坐标(Homogeneous Coordinates)。


齐次坐标

  • 何为齐次坐标:
    常规表达一个二维向量和点一般是按照如下形式:
    常规二维向量个点
    齐次坐标将向量和点的维度多扩展一维(二维->三维,三维->四维),扩展后向量最后一维值为0,点最后一维值为1。即二维向量和点的齐次坐标可表示为:
    二维向量和点的齐次坐标表示
  • 齐次坐标的其他规则:
    • 扩展出的那一维的值按如下运算规则计算:
      计算规则
    • 如果扩展出的维度值不为0或1,可将齐次坐标看成:
      规则2
      回归到前面的问题,仿射变换如何只用一个变换矩阵来表示?答案很简单,利用齐次坐标就可以轻松解决:
      仿射变换齐次坐标表示
      其中,abcd是线性变换的矩阵元素,txty分别是xy方向的位移量。

      二维缩放矩阵、旋转矩阵、平移变换矩阵的齐次坐标表达如下:
      齐次坐标表示

复合(Composite)变换

  • 复合变换如何表示:
    考虑如下问题:仅用旋转和平移将左图变为右图,要经历怎样的变换顺序:

复合变换
由于旋转默认都是以坐标轴原点为旋转中心,不难想到应该先将左图逆时针旋转45度后再向右平移一个单位。整个过程的矩阵表达如下:
复合变换矩阵表达

  • 复合变换矩阵的综合表达:
    多重表达
  • 逆复合变换矩阵过程:
    逆复合变换矩阵过程
    过程如上,分三步:
    I. 平移到原点
    II. 旋转
    III. 平移到原图形位置

参考

[1]. GAMES101_Lecture_03.pdf
[2]. Shirley P , Marschner S R . Fundamentals of Computer Graphics[M]. AK Peters, 2005.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值