990 likes | 1.3k Views
图形变换. 曾建江 zengjj@nuaa.edu.cn. 图形变换. 1. 数学基础 矢量运算 矩阵运算. 图形变换采用齐次坐标. 所谓 齐次坐标 就是将一个原本是 n 维的向量用一个 n +1 维向量来表示。 如向量 (x 1 ,x 2 , … ,x n ) 的齐次坐标表示为 (hx 1 ,hx 2 , … ,hx n ,h) ,其中 h 是一个实数 显然一个向量的齐次表示是不唯一的,齐次坐标的 h 取不同的值都表示的是同一个点,比如齐次坐标 [8,4,2] 、 [4,2,1] 表示的都是二维点 [2,1] 。. 齐次坐标的必要性.
E N D
图形变换 曾建江 zengjj@nuaa.edu.cn
图形变换 • 1. 数学基础 • 矢量运算 • 矩阵运算
图形变换采用齐次坐标 • 所谓齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示。 • 如向量(x1,x2,…,xn)的齐次坐标表示为(hx1,hx2,…,hxn,h),其中h是一个实数 • 显然一个向量的齐次表示是不唯一的,齐次坐标的h取不同的值都表示的是同一个点,比如齐次坐标[8,4,2]、[4,2,1]表示的都是二维点[2,1]。
齐次坐标的必要性 • 它提供了用矩阵运算把二维、三维甚至高维空间中的一个点集从一个坐标系变换到另一个坐标系的有效方法。 • 它可以表示无穷远的点。n+1维的齐次坐标中如果h=0,实际上就表示了n维空间的一个无穷远点。 • 方便统一变换
变换具有统一表示形式的优点 • 便于变换合成 • 便于硬件实现
几何变换 • 窗口区到视图区的坐标变换 • 二维图形的几何变换 • 三维几何变换
二维图形的显示流程图(1/4) • 坐标系:建立了图形与数之间的对应联系 • 世界坐标系(world coordinate) • 用户坐标系(user coordinate) • 局部坐标系(local coordinate)
二维图形的显示流程图(2/4) • 屏幕坐标系(screen coordinate) • 设备坐标系(device coordinate)
二维图形的显示流程图(3/4) • 窗口 • 在世界坐标系中指定的矩形区域 • 用来指定要显示的图形 • 视区 • 在设备坐标系(屏幕或绘图纸)上指定的矩形区域 • 用来指定窗口内的图形在屏幕上显示的大小及位置 • 窗口到视区的变换
窗口到视区的变换(1/2) • 目标 • 将窗口之中的图形变换到视区中 • 变换的求法 • 变换的分解与合成
窗口区到视图区的坐标变换 • 实际的窗口区与视图区往往不一样大小,要在视图区正确地显示形体的,必须将其从窗口区变换到视图区。
二维图形的几何变换 • 二维齐次坐标变换的矩阵的形式是: • 其中:对图形进行缩放、旋转、 • 对称、错切 • 对图形进行平移 • 投影 • 整体缩放
二维基本变换(1/3) • 平移变换
二维基本变换(2/3) • 旋转变换 • 点P(x,y,)的极坐标表示 • 绕坐标原点旋转角度 (逆时针为正,顺时针为负)
3)旋转变换 在直角坐标平面中,将二维图形绕原点旋转角的变换形式如下: 逆时针为正,顺时针为负
对称变换其实只是a、b、d、e取0、1等特殊值产生的一些特殊效果。例如:对称变换其实只是a、b、d、e取0、1等特殊值产生的一些特殊效果。例如: • 当b=d=0,a=-1,e=1时有x´=-x,y´=y,产生与y轴对称的图形。 • 当b=d=0,a=-1,e=-1时有x´=x,y´=-y,产生与x轴对称的图形。 • 当b=d=0,a=e=-1时有x´=-x,y´=-y,产生与原点对称的图形。 • 当b=d=1,a=e=0时有x´=y,y´=x,产生与直线y=x对称的图形。 • 当b=d=-1,a=e=0时有x´=-y,y´=-x,产生与直线y=-x对称的图形。
5)错切变换 • 当d=0时,x´=x+by,y´=y,此时,图形的y坐标不变,x坐标随初值 (x,y)及变换系数b作线性变化。 • 当b=0时,x´=x,y´=dx+y,此时,图形的x坐标不变,y坐标随初值 (x,y)及变换系数d作线性变化。
复合变换及变换的模式(1/6) 变换合成 变换分解 • 问题:如何实现复杂变换? • 关于任意参照点 的旋转变换
复合变换及变换的模式(2/6) • 关于任意参照点 的放缩变换
复合变换及变换的模式(3/6) Translate2D(1,0); Rotate2D(45); House(); Rotate2D(45); Translate2D(1,0); House(); • 变换的结果与变换的顺序有关(矩阵乘法不可交换)
复合变换及变换的模式(4/6) • 变换的固定坐标系模式 • 相对于同一个固定坐标系 • 先调用的变换先执行,后调用的变换后执行 Rotate2D(45); Translate2D(1,0); House();
复合变换及变换的模式(5/6) • 人的思维方式 • 每次变换产生一个新的坐标系 • 变换的活动坐标系模式 • 先调用的变换后执行,后调用的变换先执行(图形系统一般用堆栈实现)
复合变换及变换的模式(6/6) Rotate2D(45); Translate2D(1,0); House(); 例子
6)复合变换 • 如果图形要做一次以上的几何变换,那么可以将各个变换矩阵综合起来进行一步到位的变换。复合变换有如下的性质: • 复合平移 对同一图形做两次平移相当于将两次的平移两加起来
复合缩放 两次连续的缩放相当于将缩放操作相乘:
复合旋转 两次连续的旋转相当于将两次的旋转角度相加:
缩放、旋转变换都与参考点有关,上面进行的各种变换都是以原点为参考点的。如果相对某个一般的参考点(xf,yf)作缩放、旋转变换,相当于将该点移到坐标原点处,然后进行缩放、旋转变换,最后将(xf,yf)点移回原来的位置。切记复合变换时,先作用的变换矩阵在右端,后作用的变换矩阵在左端。缩放、旋转变换都与参考点有关,上面进行的各种变换都是以原点为参考点的。如果相对某个一般的参考点(xf,yf)作缩放、旋转变换,相当于将该点移到坐标原点处,然后进行缩放、旋转变换,最后将(xf,yf)点移回原来的位置。切记复合变换时,先作用的变换矩阵在右端,后作用的变换矩阵在左端。
其它变换(2/6) • 关于任意轴的对称变换
三维几何变换 • 由于用齐次坐标表示,三维几何变换的矩阵是一个4阶方阵
三维几何变换(1/5) • 三维其次坐标 • (x,y,z)点对应的齐次坐标为 • 标准齐次坐标(x,y,z,1) • 右手坐标系
三维几何变换(2/5) • 平移变换 • 放缩变换
三维几何变换(3/5) • 旋转变换 • 绕x轴 • 绕x轴
三维几何变换(4/5) • 绕z轴 • 错切变换
三维几何变换(5/5) • 对称变换 • 关于坐标平面xy的对称变换 • 三维变换的一般形式
坐标系之间的变换 • 什么是? • 建立坐标系之间的变换关系 • 将图形从一个坐标系中变换到另一个坐标系中 • 怎样求?
投影 8.1 三维图形的基本问题 8.2 平面几何投影 8.3 观察坐标系中的投影变换 *投影举例 8.4 三维图形的显示流程图 8.5 三维裁剪 *图形显示过程小结
8.1 三维图形的基本问题(1/4) 1. 在二维屏幕上如何显示三维物体? • 显示器屏幕、绘图纸等是二维的 • 显示对象是三维的 • 解决方法----投影 • 三维显示设备正在研制中 • 二维形体的表示----直线段,折线,曲线段,多边形区域 • 二维形体的输入----简单(图形显示设备与形体的维数一致) 2. 如何表示三维物体?
三维图形的基本问题(2/4) • 三维形体的表示----空间直线段、折线、曲线段、多边形、曲面片 • 三维形体的输入、运算、有效性保证----困难 • 解决方法----各种用于形体表示的理论、模型、方法 • 物体之间或物体的不同部分之间存在相互遮挡关系 • 遮挡关系是空间位置关系的重要组成部分 • 解决方法----消除隐藏面与隐藏线 3. 如何反映遮挡关系?
三维图形的基本问题(3/4) 4. 如何产生真实感图形 • 何谓真实感图形 • 逼真的 • 示意的 • 人们观察现实世界产生的真实感来源于 • 空间位置关系----近大远小的透视关系和遮挡关系 • 光线传播引起的物体表面颜色的自然分布 • 解决方法----建立光照明模型、开发真实感图形绘制方法
三维图形的基本问题(4/4) 三维图形的基本研究内容 • 投影 • 三维形体的表示 • 消除隐藏面与隐藏线 • 建立光照明模型、开发真实感图形绘制方法
8.2 平面几何投影(1/12) • 照像机模型与投影 • 如何投影? • 生活中的类比--如何拍摄景物? • 拍摄过程 • 选景 • 取景--裁剪 • 对焦—参考点 • 按快门--成像 • 移动方式 • 移动景物 • 移动照相机 • 两个坐标系