第五章 二维图形变换
5.1 向量基础
- 向量功能
- 图形学中,处理三维物体,以及绘制对象的形状、位置、方向。有两大基本工具:向量分析、图形变换。
- 向量:点和方向的实体 (没有位置)
- 向量的表示
- 两点之差是一个向量,方向指向被减点。
-
维向量就是一个元组
-
,
-
- 两点之差是一个向量,方向指向被减点。
- 向量基本运算
- 加减、数乘
- 归一化
- 即将向量转变为单位向量,方向不变,长度
- 即将向量转变为单位向量,方向不变,长度
-
- 点积
-
-
,用向量描述新闻,新闻相似,则向量夹角余弦接近于 1
-
;;;
-
- 点积
-
- 叉积
-
-
和、两个向量都正交,因此可以利用叉积求平面的法向量
-
的长度等于由和决定的平行四边形面积
-
- 叉积
- 向量线性组合
- 向量两种特殊线性组合(
):
- 仿射组合:线性组合的系数和等于 1,
- 凸组合:线性组合的系数和等于 1,且各系数非负,
- 仿射组合:线性组合的系数和等于 1,
- 向量两种特殊线性组合(
5.2 图形坐标系
- 坐标系的基本概念
- 坐标系:建立图形和数之间对应联系的参考系
- 建模 (modeling):程序中用于描述对象几何信息的数值
- 观察 (viewing):表示对象中大小和位置的数值
- 二维观察变换的一般方法是在世界坐标系中指定一个观察坐标系统,以该系统为参考通过选定方向和位置来指定矩形裁剪窗口。
- 坐标系分类
- 维度分类
- 一维、二维、三维坐标系
- 维度分类
-
- 坐标轴之间的空间关系分类
- 直角坐标系、极坐标系、圆柱坐标系、球坐标系
- 坐标轴之间的空间关系分类
-
- 计算机图形学坐标系分类
- 世界坐标系:公共坐标系,现实中物体或场景的统一参照系。计算机图形系统中涉及的其它坐标系都是参照它进行定义的。
- 建模坐标系:又称局部坐标系,每个物体(对象)有它自己的局部中心和坐标系,独立于世界坐标系来定义物体的几何特性。
- 观察坐标系:依据观察窗口的方向和形状在世界坐标系中定义的坐标系。观察坐标系用于指定图形的输出范围。
- 设备坐标系:适合特定输出设备输出对象的坐标系,比如屏幕坐标系。设备坐标是整数。
- 规范化坐标系:规范化坐标系独立于设备,能容易地转变为设备坐标系,是一个中间坐标系。归一化后的坐标,坐标轴取值范围 0~1。
- 计算机图形学坐标系分类
5.3 二维图形变换原理
5.3.1 图形变换概述
- 用途
- 各种变换:比例、旋转、镜像、错切、平移
- 由一个基本的图案,经过变换组合成另外一个复杂图形
- 用很少的物体组成一个场景
- 可以通过图形变换组合得到动画效果
- 基本原理
- 图形变化,但原图形的连边规则没有改变
- 图形变化,是因为顶点位置改变决定
- 变换几何关系,保持原拓扑关系。
5.3.2 仿射变换
- 仿射变换 (Affine Transformation / Affine Map)
- 基本功能
- 平直性:直线变换后仍是直线
- 平行性:平行线变换后仍平行,且直线上点的位置顺序不变
- 基本功能
-
- 二维仿射变换
-
和都是原始坐标和的线性函数
-
- 矩阵形式:
-
- 二维仿射变换
5.3.3 齐次坐标
- 二维平面中用
表示一个点,不妨说是一个向量表示一个点。所以可以用第维为常数的表示二维平面上的向量。
- 这种
维表示维的方法称为——齐次坐标表示法,维向量表示为,其中称为哑坐标,特别的时称齐次坐标为规格化坐标。
- 二维仿射变换,齐次坐标表示:
- 不使用齐次坐标可以做比例、对称、旋转变换,但做不到平移变化,无法增加常数项。
5.4 基本几何变换
5.4.1 平移变换
- 不产生变形而移动物体的刚体变换,即物体上的每个点移动相同数量的坐标
- 坐标形式:
- 齐次坐标形式:
5.4.2 比例变换
- 相对于坐标原点沿
方向放缩倍,沿方向放缩倍。放大,缩小。
- 坐标形式:
- 齐次坐标形式:
- 当
时,为整体比例变换,,放大,缩小,发生关于原点的对称等比变换。
5.4.3 对称变换
- 也称镜像变换或反射变换。有关于x轴、y轴、原点、某条直线的对称变换。
- 关于
轴对称:
- 关于
轴对称:
- 关于原点对称:
5.4.4 旋转变换
- 将点绕原点旋转角度
,逆时针为正,顺时针为负
- 坐标形式(逆时针):
- 齐次坐标形式(逆时针):
- 顺时针只要将
即可。
5.4.5 错切变换
- 弹性物体的变形处理
- 变换矩阵中的非对角线元素大都为零,若变换矩阵中的非对角元素不为
,则意味着、同时对图形的变换起作用。也就是说,变换矩阵中非对角线元素起着把图形沿或方向错切的作用。
-
值或值越小,错切量越小;值或值越大,错切量越大。
- 齐次坐标形式:
- 沿
方向错切,即:
5.4.5 复合变换
- 图形作大于一次的变换,
,矩阵相乘不可交换!任何一个复杂的几何变换都可以看作基本几何变换的组合形式。
- 二维复合平移:
- 二维复合比例:
- 二维复合旋转:
5.4.6 坐标系变换
- 图形变换经常需要从一个坐标系变换到另一个坐标系,如下图从
变换到
- 上图变换分两步完成,
,注意是从目标到源
- 平移变换 —— 将
坐标系的原点平移至坐标系的原点
- 旋转变换 —— 将
轴旋转到轴上
- 平移变换 —— 将
5.4.7 任意参考点的几何变换
- 在以往的变换中,以 (0, 0) 为参考点,倘若以任意点为参考点,则:
- 将参考点移到原点(平移)
- 针对原点进行二维几何变换(变换)
- 将原点移到参考点(反平移)
5.5 二维变换矩阵
5.5.1 二维变换矩阵概述
- 二维空间中某点的变化可以表示成点的齐次坐标与 3 阶的二维变换矩阵
相乘
5.5.2 二维图形几何变换的计算
- 点的变换:
- 直线的变换(两端点的变换):
- 多边形的变换(每个顶点的变换):
5.4 窗口、视图及变换
5.4.1 窗口和视区
- 窗口:世界坐标系中要显示的区域
- 视区:窗口映射到显示器上的区域
- 窗口定义显示什么;视区定义在何处显示;二者需要进行坐标变换
- 世界坐标系中的一个窗口可以对应于多个视区
5.4.2 观察变换
- 观察变换 (Viewing Transformation)
- 变焦距效果
- 窗口放大/缩小,视区不变,图形缩小/放大
- 整体缩放效果
- 窗口不变,视区放大/缩小,图形放大/缩小
- 漫游效果
- 把一个固定大小的窗口在一幅大图形上移动,视区不变。
5.4.3 窗口到视区的变换
- 窗口的点
视区的点
- 保持比例的映射
- 保持比例:映射之后,中心点仍然在中心,边界点仍然在边界
-
- 比例保持:
- 根据倍数关系:
- 同理,