630 likes | 946 Views
第 7 章 图形变换. 7.1 图形变换的数学基础 7.2 窗口视图变换 7.3 图形几何变换 二维几何变换 三维几何变换 7.4 投影变换 7.5 视向变换. 第 7 章 图形变换. 本节要求 : 本节的 教学目标 :弄懂图形变换的原理,尝试图形变换的应用。 本节的 教学效果 :你可以让一个五角星在计算机屏幕上放大缩小并旋转起来。参考例题,可以独立编写图形变换的 C 程序。 本节的 教学要求 :理解教材(孙家广)第 366 页几何变换矩阵的四个子矩阵的作用。陈传波教材的 P146 公式 6 - 1.
E N D
第7章 图形变换 7.1 图形变换的数学基础 7.2窗口视图变换 7.3 图形几何变换 二维几何变换 三维几何变换 7.4 投影变换 7.5 视向变换
第7章 图形变换 本节要求: • 本节的教学目标:弄懂图形变换的原理,尝试图形变换的应用。 • 本节的教学效果:你可以让一个五角星在计算机屏幕上放大缩小并旋转起来。参考例题,可以独立编写图形变换的C程序。 • 本节的教学要求:理解教材(孙家广)第366页几何变换矩阵的四个子矩阵的作用。陈传波教材的P146 公式6-1
第7章 图形变换 思考: • 是什么?(What)图形变换是计算机图形学的重要内容,它讨论图形的放大、缩小、旋转、错切等变换。图形变换主要讨论变换矩阵。 • 为什么?(Why)为什么要讨论变换矩阵,因为当对图形进行各种变换时,图形中的点会发生变化,而点对应的矩阵也会发生变化。反过来,当矩阵发生变化时,它所代表的点和图形也发生变化。所以变换了矩阵就变换了图形。 • 如何做?(How)图形变换的方法是使用矩阵变换。所以本节的重点是讨论使用什么样的变换矩阵和如何进行变换矩阵的运算。
第7章 图形变换 思考: • Photoshop中的滤镜是如何实现图形变换的?“滤镜\扭曲\切变”功能可以使得图形任意变形,它使用了图形学的“图形变换”算法 • Word中的3D图形、旋转是如何实现的? 它使用了图形学的投影变换、旋转变换算法 • 我们学习图形变换有什么用? (1)自己开发应用软件时利用图形学图形变换算法实现新功能。 (2)更有效地使用和发挥Photoshop等应用软件的功能。 (3)讲授课程时易懂有深度,所谓知其然,知其所以然。
变换的分类 • 几何变换 • 平移 • 旋转 • 缩放 • 错切
变换的分类 投影变换 • 正投影(三视图) • 轴测投影 • 透视投影
图形与矢量 • 点的表示:二维图形中的点可以用坐标(x,y)来表示,也可以用矢量[x,y]来表示。 • 二维 行矢量 [x,y] 三维 行矢量 [x,y,z] • 二维 列矢量 三维 列矢量 • 图形的表示 用nx2 或 nx3 矩阵来表示二维或三维图形上所有n个点。 二维空间上 三维空间上 的所有点 的所有点
图形的变换 • 为什么要用矩阵变换? • 因为: 当对图形进行各种变换时,图形中的点会发生变化,而点对应的矩阵也会发生变化。反过来,当矩阵发生变化时,它所代表的点和图形也发生变化。 • 所以: 不容易实现的图形变换可以通过容易实现的矩阵运算来进行,通常将矩阵P乘以一个相应的变换矩阵T,从而得到新矩阵P’,它代表变换后新图形上的各个点的坐标。 图形 矩阵P 图形变换(困难) P×变换矩阵T(容易) 新图形 新矩阵P’
变换方式 • 图形模式(固定坐标系模式)(讨论) • 变换前后点的坐标发生变化,但都是在同一坐标系中。 • 空间模式(活动坐标系模式) • 改变参照系,变换前后是相对不同坐标系的
数学基础 1/4 • 设有两个矢量 • 矢量和
数学基础(2/4) • 矢量的数乘 • 矢量的点积 • 性质
数学基础(3/4) • 矢量的长度 • 单位矢量:长度为1的矢量 • 矢量的夹角 • 矢量的叉积
数学基础(4/4) • 矩阵 • 阶矩阵 • n阶方阵 • 零矩阵 • 行向量与列向量 • 单位矩阵 • 矩阵的加法 • 矩阵的数乘 • 矩阵的乘法 • 矩阵的转置 • 矩阵的逆
变换矩阵 P=[x,y] • 点: • 变换矩阵 : • 变换 : • 变换后的点: • 新矩阵 : • 注意:x’项中有x和y分量,y’项中也有x和y分量, • 这意味着x,y共同 对新矩阵P’产生作用。
单位矩阵 • 单位矩阵: • 由上式可见变换前后的坐标不变, 因此图形也不变,这是恒等变换。 • 图形变换子程序中有:[]×T,当T改变时,则变换的结果也发生改变。绘图软件中常把变换矩阵的初始值设为单位矢量。 • 提示: 注意变换矩阵的各个元素的作用。下课时总结出规律。
比例变换1/2 • 比例变换: • 则: • a为x方向的比例因子, • d为y方向的比例因子。 • 当a=d时,x,y方向按相同比例放大(如红线) • 当a≠d时,x,y方向按不同比例放大(如绿线)。
比例变换2/2 • 比例变换 • 以坐标原点为放缩参照点 • 不仅改变了物体的大小和形状,也改变了它离原点的距离
对X轴对称变换 • 变换矩阵: • 则: • 图形对x轴进行对称变换
对Y轴对称变换 • 对称变换: • 则: • 图形对y轴进行对称变换
对原点对称变换 • 对称变换: • 则: • 图形对坐标原点进行对称变换
旋转变换1/2 • 旋转变换公式的推导 • X’= R cos(α+θ) • = R cos α cos θ-R sin α sin θ • = Xcos θ-Ysinθ • Y’= R sin (α+θ) • = R cos α sin θ+R sin α cos θ • = Xsinθ +Ycos θ • 绕坐标原点旋转θ角的变换矩阵为:
旋转变换2/2 • 旋转变换 • 绕坐标原点旋转角度 • 编程时注意:逆时针θ为正,顺时针θ为负。见手稿P3.3
错切变换1/4 • 错切变换也称为“剪切”, “错位”,“错移”变换。 • 错切变换使图形沿x轴,或沿y轴错位,直观效果位图形产生x或y方向的倾斜。 • 错切变换:
错切变换2/4 1。x方向错切 (b=0, c≠0) 分析: 1)图形各点的y坐标不变。(高度不变) 2)x’为x和y的函数。 3)c>0 ,则图形沿+x方向错切, c<0,则图形沿-x方向错切见手稿P3.4的例子。见教材P368图732错切。
错切变换3/4 • 2。y方向错切 (b ≠ 0, c = 0) 分析: 1)图形各点的x坐标不变。(宽度不变) 2)y’为x和y的函数。 3)b>0 ,则图形沿+y方向错切, b<0,则图形沿-y方向错切见手稿P3.6的例子。
错切变换4/4 • 2。X,y方向错切 (b ≠ 0, c ≠ 0) 分析: 1)图形同时向xy两个方向错切。 2)x’为x和y的函数,y’为x和y的函数。 3)b与c均不为0,见手稿P3.7的例子。
A’ A m l 平移变换 • 平移变换 • 例如:从A平移到A’· • 得到结果: • 即: • 平移变换:
平移变换的问题 发现问题: • 平移变换: 的运算为加法, • 比例变换: 的运算为乘法. • 旋转变换: 的运算为乘法. • 复合变换:T=T1·T2·T3·T4·T5的运算为乘法. 分析问题: • 不同的变换使用了乘法和加法等不同算法,不利于程序的统一调用。 • 如果能够将多种算法统一成一种算法,则编程变得方便。 解决问题: • 采用齐次坐标技术可以使所有变换全都使用乘法,即如下的形式:
齐次坐标技术 • 齐次坐标表示法 • 由n+1维向量表示一个n维向量 • 采用了齐次坐标技术,图形变换才可以转换为表示图形的点集矩阵与某一变换矩阵相乘这一单一问题。从而可以借助计算机高速计算功能,快速得到变换后的图形。为高度动态的计算机图形显示提供了可能性。 • 齐次坐标表示法的优点 • 便于变换合成 • 便于硬件实现
齐次坐标表示的实现 • 给二维点增加一维,给变换矩阵增加一列。 • 变换后的点也增加一列。 • 结果:平移变换也可以使用矩阵乘法来进行计算。 • 推广:二维 • 三维
z 2 1 x 0 y 齐次坐标的正常化1/2 • 讨论:点没有唯一的齐次坐标表示 • 齐次坐标的一般形式: • H=1时,为: • H=2时,为: • 它们都表示二维空间点见右图中的红点。
齐次坐标表示的物理含义 • 只要 和 对应的元素成比例, • 则它们对应于二维空间的同一个点。该点对应的齐次坐标为三维空间的一条直线。 • 该直线上的每一个点都对应于一个二维坐标点(x,y)。
z 1 Z=1平面 y 齐次坐标表示的物理含义 • 齐次坐标表示法用n+1维表示n 维图形的物理含义是: x
齐次坐标的正常化 • 小结: • 只有H=1时,点的齐次坐标x,y才与二维坐标的x,y值相等。 • 所以应当进行齐次坐标的正常化:
组合变换(级联)(1/6) • 组合变换: • 一个复杂的变换可以转化为多个基本变换,这种方法叫做组合变换。 • 齐次坐标统一了图形变换的表示形式,为组合变换提供了基础。
复合变换及变换的模式(1/6) • 关于任意参照点 的旋转变换θ • T=T1•T2 •T3 (位移,旋转,-位移)
复合变换及变换的模式(2/6) • 关于任意参照点 的放缩变换 • 位移,缩放,-位移
关于任意轴的对称变换1/2 • 关于任意轴的对称变换(平移A1,旋转A2,对称A3,-旋转A4,-平移A5)
关于任意轴的对称变换2/2 • 分析: • 步骤为:平移l,m,旋转θ,对x轴的对称变换(这是目的),旋转-θ,平移-l,-m, • 运算为:T=T1•T2•T3•T4•T5 • 解释:为了对称变换T3必须先旋转变换T2,为了旋转变换必须先平移变换T1。进行了对称变换后还应返回原始状态,故原路返回逆向旋转T4,并逆向平移T5 • 注意:变换顺序影响结果先平移后旋转≠先旋转后平移。见手稿P4.3
二维变换小结 • 陈传波教材P147有公式6-1,变换矩阵中共有4个子矩阵。 • abcd对图形作缩放、旋转、对称、错切变换, • lm对图形作平移变换, • qp对图形作投影变换, • s对图形作整体变换。 • acl对x’起作用,bdm对y’起作用,qps对整体起作用。
三维几何变换 • 三维几何变换 • 三维几何变换是二维几何变换的推广。 • 三维几何变换在齐次坐标空间中可以用4×4的变换矩阵表示,(x,y,z)点对应的齐次坐标为:(x,y,z,h),其中h是不等于0的任意常数。 • 变换矩阵:(P42)(孙教材P369)
三维齐次坐标 • 三维齐次坐标 • (x,y,z)点对应的齐次坐标为 • 标准齐次坐标(x,y,z,1) • 右手坐标系 • 旋转轴 正的旋转方向 • x y->z • y z->x • z x->y y x z
比例变换 • 比例变换 • 若a =e =j 则:xyz 方向的 缩放比例相同,如图1。 • 若a≠e≠j 则:立体产生类似变形,如图2。 z z x x y y
全比例变换 • 全比例变换矩阵: • 变换结果: • 需要进行齐次坐标正常化
x y 对xoy平面的对称变换 • 变换矩阵: • 立体对xoy平面对称时,x,y坐标不变,z坐标变化。 z o
对xoz平面的对称变换 • 变换矩阵: • 立体对xoz平面对称时,x,z坐标不变,y坐标变化。 z o y x
对yoz平面的对称变换 • 对yoz平面的对称变换: • 立体对yoz平面对称时,y,z坐标不变,x坐标变化。 z x y o
绕x轴旋转变换 • 旋转变换 • 绕x轴 z z 绕x轴旋转 x x y y
绕y轴旋转变换 • 旋转变换 • 绕y轴 z z 绕y轴旋转 x x y y
绕z轴旋转变换 • 旋转变换 • 绕z轴 z z 绕z轴旋转 x x y y