计算机图形学第五章 PPT
合集下载
计算机图形学第五章曲线与曲面
2015/9/25
20
第五章:曲线与曲面
2015/9/25
21
第五章:曲线与曲面
2015/9/25
22
第五章:曲线与曲面
2015/9/25
23
第五章:曲线与曲面
双三次参数曲面的代数形式
双三次参数曲面片: 由两个三次参数变量(u, w)定义的曲面片,最常用。
其代数形式、矩阵表示分别是:
最简单的参数曲线,P(t)=P1+(P2-P1)t t∈[0, 1]; 端点为P1、P2
圆
第一象限内的单位圆弧的非参数方程表示为:
y 1 x2
其参数形式可表示为:
0 x 1
1 t2 x (t ) , 2 1 t
y (t )
2t 1 t 2
2015/9/25
推导略
2015/9/25
18
第五章:曲线与曲面
参数曲面的定义
一张矩形域上的参数曲面片
一张矩形域上由曲线边界包围具有一定连续性的点集面片,用双参数的
单值函数表示式为:x=x(u, w), y=y(u, w), z=z(u, w) u,w€[0,1] u,w为参 数。并可记为:p(u, w)=[x(u, w), y(u, w), z(u, w)]
2015/9/25
7
第五章:曲线与曲面
位置矢量、切矢量、法矢量、曲率和挠率
参数表示的三维曲线
有界点集,可写成一个带参数的、连续的、单值的数学函数x=x(t),
y=y(t),z=z(t),0≤t≤1
位置矢量
图5.1.1所示,曲线上任一点的位置矢量可表示为P(t)=[x(t), y(t), z(t)];其
计算机图形学ppt(共49张PPT)
实现自动化、智能化的 加工和生产。
应用领域
广泛应用于机械、电子、建筑、汽车等制造业领域。
计算机游戏设计与开发
游戏引擎
基于计算机图形学技术构建游戏引擎, 实现游戏场景、角色、特效等的渲染 和交互。
应用领域
广泛应用于娱乐、教育、军事模拟等 领域。
游戏设计
利用计算机图形学技术进行游戏关卡、 任务、角色等的设计,提高游戏的可 玩性和趣味性。
纹理映射与表面细节处理
纹理坐标
定义物体表面上的点与纹理图像上的点之间 的映射关系。
Mipmapping
使用多级渐远纹理来减少纹理采样时的走样 现象。
Bump Mapping
通过扰动表面法线来模拟表面凹凸不平的细 节。
Displacement Mapping
根据高度图调整顶点位置,实现更真实的表 面细节。
透明度与半透明处理
Alpha Blending
通过混合像素的颜色和背景颜 色来实现透明度效果。
Order-Independent Transparency
一种解决透明物体渲染顺序问 题的方法,可以实现正确的透 明效果叠加。
Depth Peeling
通过多次渲染场景,每次剥离 一层深度,来实现半透明物体 的正确渲染。
如中点画圆算法,利用圆 的八对称性,通过计算决 策参数来生成圆。
多边形的生成算法
如扫描线填充算法,通过 扫描多边形并计算交点来 生成多边形。
二维图形的变换与裁剪
二维图形的变换
包括平移(Translation)、旋转(Rotation)、 缩放(Scaling)等变换,可以通过变换矩阵来实 现。
二维图形的裁剪
后期制作
在影视制作后期,利用计算机图形学技术进行颜色校正、合成、剪 辑等处理,提高影片质量。
应用领域
广泛应用于机械、电子、建筑、汽车等制造业领域。
计算机游戏设计与开发
游戏引擎
基于计算机图形学技术构建游戏引擎, 实现游戏场景、角色、特效等的渲染 和交互。
应用领域
广泛应用于娱乐、教育、军事模拟等 领域。
游戏设计
利用计算机图形学技术进行游戏关卡、 任务、角色等的设计,提高游戏的可 玩性和趣味性。
纹理映射与表面细节处理
纹理坐标
定义物体表面上的点与纹理图像上的点之间 的映射关系。
Mipmapping
使用多级渐远纹理来减少纹理采样时的走样 现象。
Bump Mapping
通过扰动表面法线来模拟表面凹凸不平的细 节。
Displacement Mapping
根据高度图调整顶点位置,实现更真实的表 面细节。
透明度与半透明处理
Alpha Blending
通过混合像素的颜色和背景颜 色来实现透明度效果。
Order-Independent Transparency
一种解决透明物体渲染顺序问 题的方法,可以实现正确的透 明效果叠加。
Depth Peeling
通过多次渲染场景,每次剥离 一层深度,来实现半透明物体 的正确渲染。
如中点画圆算法,利用圆 的八对称性,通过计算决 策参数来生成圆。
多边形的生成算法
如扫描线填充算法,通过 扫描多边形并计算交点来 生成多边形。
二维图形的变换与裁剪
二维图形的变换
包括平移(Translation)、旋转(Rotation)、 缩放(Scaling)等变换,可以通过变换矩阵来实 现。
二维图形的裁剪
后期制作
在影视制作后期,利用计算机图形学技术进行颜色校正、合成、剪 辑等处理,提高影片质量。
计算机图形学_完整版 ppt课件
三维观察设备 虚拟现实系统的输出显示设备 ……
输入设备
键盘、鼠标 按钮盒、旋钮 跟踪球、空间球 操作杆 触觉反馈设备 数据手套、数据衣 数字化仪 扫描仪 触摸板 光笔 ……
硬拷贝设备
打印机 喷墨 激光 ……
绘图仪 台式 大型滚动传送式 ……
图形硬件系统组成模块示意图:
或称图形坐标系、用户坐标系、全局坐标系 如在世界坐标系中进行装配
观察坐标系(viewing coordinate)
对场景进行观察所对应的坐标系 对象经变换到该场景的一个二维投影——投影变换
规范化坐标系(normalized coordinate)
可使图形软件与特定输出设备的坐标范围无关 坐标范围:-1~1,或0 ~ 1 等等
在场景中对物体移动、旋转、缩 放、扭曲等,或转换模型坐标系
3D→2D,并对观察区域进行裁 剪和缩放
一种伪变换,对窗口上的最终输 出进行移动、缩放等
三维几何变换
可用4×4矩阵操作统一表示二维和三维几何变换
缩放、旋转、 对称、错切等
平移
投影
整体缩放
基本变换:平移、旋转、缩放
复合变换:可由平移、旋转、缩放和其他变换的矩阵乘积 (合并)形成。
图元的绘制、显示过程
顶点 法向量、颜色、纹理… 像素
图元操作、像素操作 光栅化(扫描转换)
像素信息 帧缓存 显示器
调用底层函数,如 setPixel (x,y);将当 前像素颜色设定值存 入帧缓存的整数坐标 位置(x,y)处。
图元描述与操作
几何图元由一组顶点(Vertex)描述 这一组顶点可以是一个或是多个。每个顶点信息二维或 三维,使用 2~4 个坐标。顶点信息由位置坐标、颜色 值、法向量、纹理坐标等组成。
输入设备
键盘、鼠标 按钮盒、旋钮 跟踪球、空间球 操作杆 触觉反馈设备 数据手套、数据衣 数字化仪 扫描仪 触摸板 光笔 ……
硬拷贝设备
打印机 喷墨 激光 ……
绘图仪 台式 大型滚动传送式 ……
图形硬件系统组成模块示意图:
或称图形坐标系、用户坐标系、全局坐标系 如在世界坐标系中进行装配
观察坐标系(viewing coordinate)
对场景进行观察所对应的坐标系 对象经变换到该场景的一个二维投影——投影变换
规范化坐标系(normalized coordinate)
可使图形软件与特定输出设备的坐标范围无关 坐标范围:-1~1,或0 ~ 1 等等
在场景中对物体移动、旋转、缩 放、扭曲等,或转换模型坐标系
3D→2D,并对观察区域进行裁 剪和缩放
一种伪变换,对窗口上的最终输 出进行移动、缩放等
三维几何变换
可用4×4矩阵操作统一表示二维和三维几何变换
缩放、旋转、 对称、错切等
平移
投影
整体缩放
基本变换:平移、旋转、缩放
复合变换:可由平移、旋转、缩放和其他变换的矩阵乘积 (合并)形成。
图元的绘制、显示过程
顶点 法向量、颜色、纹理… 像素
图元操作、像素操作 光栅化(扫描转换)
像素信息 帧缓存 显示器
调用底层函数,如 setPixel (x,y);将当 前像素颜色设定值存 入帧缓存的整数坐标 位置(x,y)处。
图元描述与操作
几何图元由一组顶点(Vertex)描述 这一组顶点可以是一个或是多个。每个顶点信息二维或 三维,使用 2~4 个坐标。顶点信息由位置坐标、颜色 值、法向量、纹理坐标等组成。
计算机图形学 第5章 图形用户界面和交互输入方法
东华理工学院
17
光笔也用来输入坐标位置,但必须在实现时进行 某些特殊的处理。由于光笔通过检测屏幕荧光体发射 的光来进行操作,因此在所选的坐标位置上必须有非 零强度级的信号出现。在光栅系统中,可以在屏幕上 绘出彩色背景。只要没有出现黑色区域,光笔可以用 于选择任意的屏幕位置。在无法排除显示中的黑色区 域时(例如向量系统),可以通过创建一个小的发光 图案以供光笔检测,从而将光笔作为定位设备使用。 该图案将在屏幕上移动直到发现了光笔。
东华理工学院
6
另一方面,有经验的用户强调操作速度。他们不需要多 余的提示和来自键盘或多种“鼠标-按键”的输入。由于有 经验的用户记住了常用动作的缩写,因此经常通过功能键 或同时按下组合键来选择这些动作。
同样,也可以分成几个层次来设计帮助功能,使初学 者进行较为详细的对话,有经验的用户则减少或去掉提示 和消息。帮助功能还可以包含一个或多个辅导性应用,来 介绍该软件的功能和使用方法。
第五章 图形用户界面和 交互输入方法
主要内容: 5.1 用户对话 5.2 图形数据的输入 5.3 输入功能 5.5 交互式构图技术
东华理工学院
1
5.1 用户对话
对于某种特定的应用,用户模型是设计对话的基础。
用户模型说明所设计的系统能做什么,应具备什么样的图
形操作。这种模型指明了可以显示的对象类型以及如何管
东华理工学院
9
5.1.5 回退和出错处理
在一系列操作过程中,回退和取消机制是用户界面的另 一个共同的特点。常常在操作完成之前取消该操作,然 而系统将保存操作之前的状态。有了在任一位置回退的 功能,就可以放心地使用系统的各种功能。
可以有多种形式来控制回退操作。一个标准的undo键或 命令可以用来取消一次单个的操作。有的系统可以回退 若干步操作,因此可以把系统回退到某些特定的位置。 在具有多步回退功能的系统中,所有输入均被保存,因 而可以回退并“重复操作”任意一部分。
计算机图形学 第5章 裁剪
3.直线裁剪实例 例5.1 用编码算法裁剪如图5-3(a)所示中的直线段 AB。
图5-3 AB线段的裁剪过程
例5.2 用编码算法裁剪如图5-4(a)所示中的直线段MN。
图5-4 MN线段的裁剪过程
5.1.2 中点分割算法 算法步骤:输入线段端点p1,p2;对于端点p2: (1) p2是否可见,若可见,则它为离p1最远的可见点, 处理结束。 (2) plp2是否全不可见,若是,没有输出,处理结束。 (3) 让pa = p1,pb = p2。
边 V1V2 V2V3 V3V4 V4V5 V5V1 n (1,1) (4,-3) (-1,-2) (-4,3) (0,1) f (2,0) (3,6) (3,6) (4,0) (2,0) w [-4,1] [-5,-5] [-5,-5] [-6,1] [-4,1] w· n -3 -5 15 27 1 D· n 11 30 -13 -30 2 -1/2 tL 3/11 1/6 15/13 9/10 tu
外裁剪有两个重要的应用。
(1) 应用于凹多边形裁剪窗口的线段裁剪。如图5-9 所示线段p1p2相对于凹多边形vlv2v3v4v5v1进行裁剪。 连接v2v4,v1v2v4v5v1为凸多边形,应用Cyrus-Beck算 法,先将p1p2对此凸多边形作内裁剪得到,再将对多 边形v2v3v4v2作外裁剪,最后得到窗口内部分为和。
(4) 沿vi+1p1将多边形一分为二,一个多边形由vi+1, vi+2,…, p1vi+1组成,另一个多边形由vip1及其余顶点组 成。 (5) 对分割的两个多边形递归地重复以上步骤,直到 所有新产生的多边形均为凸,算法结束。
5.1.7 Sutherland-Hodgman逐次多边形裁剪算法 多边形由顶点表p1, p2,…, pn所定义,于是边表为p1p2, p2p3,…, pn-1pn和pn p1。算法的基本思想是将原多边形和 每次裁剪所生成的多边形逐次对裁剪窗口的每一条边 界进行裁剪。考虑图5-12(a)原多边形被窗口左边界所 裁剪,如图5-12(b)所示;生成的多边形又被窗口顶边 所裁剪,如图5-12(c)所示;继续这一过程,生成的中 间多边形被窗口的右边界,如图5-12(d)所示,直至下 边界裁剪完,如图5-12(e)所示为止。
第五章 计算机图形学 ppt课件
2020/5/12
图形和图像的主要区别主要有4个方面: 1、数据来源不同
图像数据来自客观世界,图形数据来自主观世界。 2、处理方法不同
图像处理方法包括几何修正、图像变换、图像增强、 图像理解、图像识别等。图形处理方法包括几何变换 、裁剪、隐藏线、隐藏面消除、曲线和曲面拟合、明 暗处理、纹理产生等。
术等。
2020/5/12
二、计算机图形学的起源和发展
1、计算机图形学的起源和发展
• 1950年,第一台图形显示器作为美国麻省理工学院(MIT) 旋风I号(Whirlwind I)计算机的附件诞生。
• 1958年美国Calcomp公司发明了滚筒式绘图仪,GerBer 公司研制出了平板式绘图仪。
• 1962年,MIT林肯实验室的I.E.萨瑟兰德(I.E.Sutherland) 发表了一篇题为“Sketchpad:一个人-机通信的图形系统 ”的博士论文,首次使用了计算机图形学(Computer Graphics)这个术语。
2020/5/12
3. 计算机图形学的研究领域和目标
(1) 图形系统的硬件设备,如图形处理器、图形输入输出设 备,特别是图形显示和打印设备; (2) 基本图元的生成技术,如直线、园狐、曲线和曲面等; (3) 图形变换技术,包括二维几何变换、三维几何变换和投 影变换等; (4) 人机交互绘图技术,如窗口技术、橡皮筋技术等; (5) 图形运算和处理技术,如图形的裁剪、填充等; (6) 实体造型技术和真实图形的表示,如消隐技术、色彩技
2020/5/12
四、图形和图像的区别和联系
计算机图形学是指将点、线、面、曲面等实体生 成物体的模型存放在计算机里,并可进行修改、处理 、操作和显示的一门科学。图形含有几何属性,或者 说更强调场景的几何表示,是由场景的几何模型和景 物的物理属性共同组成的。
图形和图像的主要区别主要有4个方面: 1、数据来源不同
图像数据来自客观世界,图形数据来自主观世界。 2、处理方法不同
图像处理方法包括几何修正、图像变换、图像增强、 图像理解、图像识别等。图形处理方法包括几何变换 、裁剪、隐藏线、隐藏面消除、曲线和曲面拟合、明 暗处理、纹理产生等。
术等。
2020/5/12
二、计算机图形学的起源和发展
1、计算机图形学的起源和发展
• 1950年,第一台图形显示器作为美国麻省理工学院(MIT) 旋风I号(Whirlwind I)计算机的附件诞生。
• 1958年美国Calcomp公司发明了滚筒式绘图仪,GerBer 公司研制出了平板式绘图仪。
• 1962年,MIT林肯实验室的I.E.萨瑟兰德(I.E.Sutherland) 发表了一篇题为“Sketchpad:一个人-机通信的图形系统 ”的博士论文,首次使用了计算机图形学(Computer Graphics)这个术语。
2020/5/12
3. 计算机图形学的研究领域和目标
(1) 图形系统的硬件设备,如图形处理器、图形输入输出设 备,特别是图形显示和打印设备; (2) 基本图元的生成技术,如直线、园狐、曲线和曲面等; (3) 图形变换技术,包括二维几何变换、三维几何变换和投 影变换等; (4) 人机交互绘图技术,如窗口技术、橡皮筋技术等; (5) 图形运算和处理技术,如图形的裁剪、填充等; (6) 实体造型技术和真实图形的表示,如消隐技术、色彩技
2020/5/12
四、图形和图像的区别和联系
计算机图形学是指将点、线、面、曲面等实体生 成物体的模型存放在计算机里,并可进行修改、处理 、操作和显示的一门科学。图形含有几何属性,或者 说更强调场景的几何表示,是由场景的几何模型和景 物的物理属性共同组成的。
计算机图形学第五章 PPT
因为屏幕像素是有限的,一般 计算次数不会太多,而且算法 思想是用取中点的方法最后在 误差允许的范围内去逼近真正 的与裁剪矩形边的交点。
下面我们仅介绍如何在线段P1P2上求离P1最 远的可见点 (求P2最远的可见点同p1) ,其 具体步骤如下:
① 测试P2是否在窗口内,若是,则P2就是 离P1最远的可见点,结束。否则,进行下一
(如图中的EF就是这种情况,它 使QL=0,DL>0和QR=0,DR>0。这 时由于EF和x=xL及x=xR平行,故不 必去求出EF和x=xL及x=xR的交点, 而让EF和y=yT及y=yB的交点决定直 线段上的可见部分。)
E A
B F
思考:前面几种裁剪直线段 算法的裁剪窗口都是矩形区 域,如何推广裁剪区域呢?
中点分割裁剪算法
基本思想: 与前一种Cohen-Sutherland算
法一样首先对线段端点进行编码,并把 线段与窗口的关系分为三种情况: 全部可见、完全不可见和线段部分可见。 对前两种情况,进行一样的处理。对于 第三种情况,用中点分割的方法求出线 段与窗口的交点。
问:算法为什么可行?会不会 无限循环、不断二分?
N·(P(t)-A)>0
参数化算法(Cyrus-Beck)
k条边的多边形,可见线段参数区间的解: Ni·(p(t)-Ai)>=0, i=0,…,k, 0≤t ≤1. 即:Ni·(P1-Ai)+ Ni·(P2-P1) t>=0 可得:
NN i •i•P2P2PN1Pi1•0P2 0 tP1t0N N N N ii ••ii••NPP12iPP12AP1iPAP21iP1
yT为终边。 yT为始边。
Liang-Barsky算法:交点计算
求出P0P1与两条始边的交点参 数t0, t1 , 令 tl=max(t0 ,t1,0),则tL即为 三者中离p1最近的点的参数
下面我们仅介绍如何在线段P1P2上求离P1最 远的可见点 (求P2最远的可见点同p1) ,其 具体步骤如下:
① 测试P2是否在窗口内,若是,则P2就是 离P1最远的可见点,结束。否则,进行下一
(如图中的EF就是这种情况,它 使QL=0,DL>0和QR=0,DR>0。这 时由于EF和x=xL及x=xR平行,故不 必去求出EF和x=xL及x=xR的交点, 而让EF和y=yT及y=yB的交点决定直 线段上的可见部分。)
E A
B F
思考:前面几种裁剪直线段 算法的裁剪窗口都是矩形区 域,如何推广裁剪区域呢?
中点分割裁剪算法
基本思想: 与前一种Cohen-Sutherland算
法一样首先对线段端点进行编码,并把 线段与窗口的关系分为三种情况: 全部可见、完全不可见和线段部分可见。 对前两种情况,进行一样的处理。对于 第三种情况,用中点分割的方法求出线 段与窗口的交点。
问:算法为什么可行?会不会 无限循环、不断二分?
N·(P(t)-A)>0
参数化算法(Cyrus-Beck)
k条边的多边形,可见线段参数区间的解: Ni·(p(t)-Ai)>=0, i=0,…,k, 0≤t ≤1. 即:Ni·(P1-Ai)+ Ni·(P2-P1) t>=0 可得:
NN i •i•P2P2PN1Pi1•0P2 0 tP1t0N N N N ii ••ii••NPP12iPP12AP1iPAP21iP1
yT为终边。 yT为始边。
Liang-Barsky算法:交点计算
求出P0P1与两条始边的交点参 数t0, t1 , 令 tl=max(t0 ,t1,0),则tL即为 三者中离p1最近的点的参数
计算机图形学课件——fifth1PPT
其中变换矩阵: 1 0 0
T
0
1
0
0 0 1
11.06.2020
21
对称Y轴变换的几何表示见下图
11.06.2020
22
3. 对称于原点 当图形对X轴和Y轴都进行对称变换时,即得相
对于坐标原点的对称变换。这一变换前后点坐标之 间的关系为:
x' x
y'
y
写成齐次坐标矩阵形式为:
1 0 0
11.06.2020
31
5.1.6 错切变换 错切(shear)变换是轴上点不动,其它点沿平行于
此轴方向移动变形的变换。错切变换也称为剪切、错位 或错移变换。常用的错切变换有两种:改变x坐标值和 改变y坐标值。
可以分解为平移、旋转、对称于坐标轴等变换的组合。 首先平移直线经过坐标原点,而后将直线绕坐标原点 旋转至同某一坐标轴重合,做对称于坐标轴的变换, 最后反向旋转和反向平移将直线置回原处。
如下图所示,平移直线经过坐标原点需要在Y轴方 向上移动距离b,然后将直线绕坐标原点旋转至同Y轴
重合,设旋转角度为 ,两步的变换矩阵分别为:
11.06.2020
28
1 0 0
T1
0
1
0
0 b 1
cos sin 0
T2 sin cos 0
0
0 1
1 0 0
做对称于Y轴的对称变换,其变换矩阵为:T3
0
1
0
0 0 1
最后反向旋转和反向平移将直线置回原处,其变换矩阵分别
为:
cos)( sin )( 0 co ssin0
1 0 0
T4sin )( cos)(0sin co s0
T5
计算机图形学_第五章
式7-4
方阵 单位矩阵:对角线元素为1,其他元素为0。记作 I n
式7-5
转置 M的转置记作 M
T
,它的列由M的行组成。即
式7-6 式7-7
MT ij M ji
对于向量来说,转置将行向量变成列向量
在书面表达中列向量通常写为
式7-8
矩阵乘法 矩阵乘法的计算前提
nc
A的列数和B的行数相等。一个 矩阵的结果是一个 矩阵,记作AB
r n r c
矩阵A乘以一个
矩阵乘法
矩阵乘法的计算 若矩阵A是 矩阵, 矩阵B是 绩AB的计算方法如下:
r n
nc
矩阵,则它们的成
矩阵乘法
矩阵乘法
矩阵乘法的注意事项
任何矩阵M乘以方阵S,矩阵维数不变;如S是单位矩阵,则不变,即: MI=IM=M 矩阵乘法不满足交换律
矩阵乘法满足结合律,即(AB)C=A(BC) 矩阵乘法满足与标量或者向量的结合律,即: (kA)B= k(AB)= A(kB) (vA)B= v(AB) 矩阵积的转置相当于先转置然后以相反的顺序乘:
式5-8
d
ba
d x d yd z
2 2
2
2
式5-9
(bx ax ) (by a y ) (bz az )
2
2
式5-10
向量点乘 运算法则 向量点乘的结果为一个标量。
a1 b1 a b 2 2 ... ... a1b1 a2b2 ... an 1bn 1 anbn a n 1 bn 1 an bn
a 图4-3
b 图4-4
向量运算 线性代数与几何 符号约定 零向量 负向量 向量大小(长度或模) 标量与向量的乘法 标准化向量 向量的加法和减法 距离公式 向量点乘 向量叉乘 线性代数公式
方阵 单位矩阵:对角线元素为1,其他元素为0。记作 I n
式7-5
转置 M的转置记作 M
T
,它的列由M的行组成。即
式7-6 式7-7
MT ij M ji
对于向量来说,转置将行向量变成列向量
在书面表达中列向量通常写为
式7-8
矩阵乘法 矩阵乘法的计算前提
nc
A的列数和B的行数相等。一个 矩阵的结果是一个 矩阵,记作AB
r n r c
矩阵A乘以一个
矩阵乘法
矩阵乘法的计算 若矩阵A是 矩阵, 矩阵B是 绩AB的计算方法如下:
r n
nc
矩阵,则它们的成
矩阵乘法
矩阵乘法
矩阵乘法的注意事项
任何矩阵M乘以方阵S,矩阵维数不变;如S是单位矩阵,则不变,即: MI=IM=M 矩阵乘法不满足交换律
矩阵乘法满足结合律,即(AB)C=A(BC) 矩阵乘法满足与标量或者向量的结合律,即: (kA)B= k(AB)= A(kB) (vA)B= v(AB) 矩阵积的转置相当于先转置然后以相反的顺序乘:
式5-8
d
ba
d x d yd z
2 2
2
2
式5-9
(bx ax ) (by a y ) (bz az )
2
2
式5-10
向量点乘 运算法则 向量点乘的结果为一个标量。
a1 b1 a b 2 2 ... ... a1b1 a2b2 ... an 1bn 1 anbn a n 1 bn 1 an bn
a 图4-3
b 图4-4
向量运算 线性代数与几何 符号约定 零向量 负向量 向量大小(长度或模) 标量与向量的乘法 标准化向量 向量的加法和减法 距离公式 向量点乘 向量叉乘 线性代数公式
计算机图形学完整课件
x y =(a·x1+b·y1+c)+a+0.5·b
=F(x1,y1)+a+10.5·b 1
x y 但由于(x1,y1)在直线上,故F(x1,y1)=0。
因此d的初始值1 为d0=a+0.5·b 1
由于我们使用的只是d的符号,而且d的增量都是整数,只是其初 始值包含小数。因此,我们可以用2d代替d,来摆脱小数,写出仅包 含整数运算的算法:
当d<0时,M在直线下方(即在Q的下 方),故应取右上方的p2作为下一个象 素。
当d>0,则应取正右方的p1。
当d=0是,二者一样合适,可以随便取一 个。
我们约定取正右方的p1。 对 每一个象素计算判别式d,根据它 的符号确定下一象素。由于d是xp 和yp的线性函数,可采用增量计算 ,以便提高运算效率。
对于直线上的点F(x,y)=0; 对于直线上方的点F(x,y)>0; 对于直线下方的点F(x,y)<0。 因此,欲判前述Q在M的上方还是下方,只要把M代入F(x,y), 并判断它的符号。构造判别式
d=F(M)=F( , )=a( )+b( )+c
xp 1 yp 0.5
xp 1
yp 0.5
必须寻找只需做一些简单的 整数运算和判别运算的方 法即可确定圆上的象素点的算法。
考虑到圆的对称性可 以减少计算量。只要 能生成8分圆,那么圆 的其它部分可以通过 一系列的简单映射变 换得到。如图所示, 假设已知一个圆心在 原点的圆上一点(x,y),
(x, y)
( y, x)
(x, y)
(y, x)
( y, x)
( x, y)
( y,x)
( x, y)
=F(x1,y1)+a+10.5·b 1
x y 但由于(x1,y1)在直线上,故F(x1,y1)=0。
因此d的初始值1 为d0=a+0.5·b 1
由于我们使用的只是d的符号,而且d的增量都是整数,只是其初 始值包含小数。因此,我们可以用2d代替d,来摆脱小数,写出仅包 含整数运算的算法:
当d<0时,M在直线下方(即在Q的下 方),故应取右上方的p2作为下一个象 素。
当d>0,则应取正右方的p1。
当d=0是,二者一样合适,可以随便取一 个。
我们约定取正右方的p1。 对 每一个象素计算判别式d,根据它 的符号确定下一象素。由于d是xp 和yp的线性函数,可采用增量计算 ,以便提高运算效率。
对于直线上的点F(x,y)=0; 对于直线上方的点F(x,y)>0; 对于直线下方的点F(x,y)<0。 因此,欲判前述Q在M的上方还是下方,只要把M代入F(x,y), 并判断它的符号。构造判别式
d=F(M)=F( , )=a( )+b( )+c
xp 1 yp 0.5
xp 1
yp 0.5
必须寻找只需做一些简单的 整数运算和判别运算的方 法即可确定圆上的象素点的算法。
考虑到圆的对称性可 以减少计算量。只要 能生成8分圆,那么圆 的其它部分可以通过 一系列的简单映射变 换得到。如图所示, 假设已知一个圆心在 原点的圆上一点(x,y),
(x, y)
( y, x)
(x, y)
(y, x)
( y, x)
( x, y)
( y,x)
( x, y)
Lecture05-Clipping 计算机图形学ppt课件
end
else if code AND 0010 then begin // xmax y = y0 + dy * (xmax – x0) / dx; x = xmax
▪ No clipping necessary
2. One endpoint in, one out (line CD)
▪ Clip at intoth endpoints outside
the region:
a. No intersection (lines EF, GH)
Line Clipping
• Strategies for clipping:
a) Check (in inner loop) if each point is inside Works, but slow
if (x >= xmin && x <= xmax && y >= ymin && y <= ymax)
drawPoint(x,y,c);
b) Clip invalid coordinate(s) to boundary Incorrect results
if
(x < xmin) x = xmin;
else if (x > xmax) x = xmax;
if
(y < ymin) y = ymin;
else if (y > ymax) y = ymax;
• Test:
if code0 OR code1 = 0000 accept (draw)
0101
0100
0110
else if code0 AND code1 0000 reject (don’t draw)
else if code AND 0010 then begin // xmax y = y0 + dy * (xmax – x0) / dx; x = xmax
▪ No clipping necessary
2. One endpoint in, one out (line CD)
▪ Clip at intoth endpoints outside
the region:
a. No intersection (lines EF, GH)
Line Clipping
• Strategies for clipping:
a) Check (in inner loop) if each point is inside Works, but slow
if (x >= xmin && x <= xmax && y >= ymin && y <= ymax)
drawPoint(x,y,c);
b) Clip invalid coordinate(s) to boundary Incorrect results
if
(x < xmin) x = xmin;
else if (x > xmax) x = xmax;
if
(y < ymin) y = ymin;
else if (y > ymax) y = ymax;
• Test:
if code0 OR code1 = 0000 accept (draw)
0101
0100
0110
else if code0 AND code1 0000 reject (don’t draw)
计算机图形学实用教程第5章 图形变换与裁剪1
v yt v yb wyt wyb ( yw wyb ) v yb
(x w , y w)
yb
yv
Ow Yu
W xl 视图区
W xr
Xw
令பைடு நூலகம்
V yt
(x v , y v)
V yb
有
xv axw c
yv byw d
Ou
V xl
V xr
Xu
窗口与视图区的对应关系
本章内容
5.基本几何变换的齐次坐标表示
平移变换
1 y 1 0 Tx 0 1 Ty 0 0 1
x
比例变换
y 1 x
x
旋转变换
逆时针为正
y 1 x
S x y 1 0 0
0 Sy 0
0 0 1
x
y 1 x
cos sin 0 y 1 sin cos 0 0 1 0
当 S x S y时,变换前的图形与变换后的图形相似 当 S x S y 1时,图形将放大,并远离坐标原点 当 0 S x S y 1 时,图形将缩小,并靠近坐标原点 当 S x S y时,图形将发生畸变
3.旋转变换(rotation) 点P绕原点逆时针转θ度角 (设逆时针旋转方向为正方向)
指相对于原点的比例变换
S x 平行于x轴的方向上的缩放量 S y 平行于y轴的方向上的缩放量
x
y
几何关系
x' x S x y' y S y
y
相对于原点的比例变换
重心
矩阵形式
x
y x
S x y 0
0 Sy
(x w , y w)
yb
yv
Ow Yu
W xl 视图区
W xr
Xw
令பைடு நூலகம்
V yt
(x v , y v)
V yb
有
xv axw c
yv byw d
Ou
V xl
V xr
Xu
窗口与视图区的对应关系
本章内容
5.基本几何变换的齐次坐标表示
平移变换
1 y 1 0 Tx 0 1 Ty 0 0 1
x
比例变换
y 1 x
x
旋转变换
逆时针为正
y 1 x
S x y 1 0 0
0 Sy 0
0 0 1
x
y 1 x
cos sin 0 y 1 sin cos 0 0 1 0
当 S x S y时,变换前的图形与变换后的图形相似 当 S x S y 1时,图形将放大,并远离坐标原点 当 0 S x S y 1 时,图形将缩小,并靠近坐标原点 当 S x S y时,图形将发生畸变
3.旋转变换(rotation) 点P绕原点逆时针转θ度角 (设逆时针旋转方向为正方向)
指相对于原点的比例变换
S x 平行于x轴的方向上的缩放量 S y 平行于y轴的方向上的缩放量
x
y
几何关系
x' x S x y' y S y
y
相对于原点的比例变换
重心
矩阵形式
x
y x
S x y 0
0 Sy
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最简单的裁剪方法是把各种图形扫描 转换为点之后,再判断各点是否在窗内。 但那样太费时,一般不可取。这是因为有 些图形组成部分全部在窗口外,可以完全 排除,不必进行扫描转换。所以一般采用 先裁剪再扫描转换的方法。
5.2 二ቤተ መጻሕፍቲ ባይዱ裁剪
裁剪算法有二维的和三维的,裁剪 对象也可以是规则形体,也可以是 不规则形体。本章重点介绍二维裁 剪,三维裁剪涉及到后面章节三维 消隐等内容,后面再简要介绍。
交点处把线段分为两段。其中一段完全在窗口 外,可弃之。然后对另一段重复上述处理。 为快速判断,采用如下编码方法:
图 5.1 区域划分及编码
图 5.2 区位码各位含义
编码的思想在图形学中非常重要。
Sutherland:Coons, 图灵, IEEE 计算机 先驱奖。
Cohen-Sutherland算法
中点分割裁剪算法
基本思想: 与前一种Cohen-Sutherland算
法一样首先对线段端点进行编码,并把 线段与窗口的关系分为三种情况: 全部可见、完全不可见和线段部分可见。 对前两种情况,进行一样的处理。对于 第三种情况,用中点分割的方法求出线 段与窗口的交点。
问:算法为什么可行?会不会 无限循环、不断二分?
一旦给定所有的线段端点的区 域码,就可以快速判断哪条直 线完全在剪取窗口内,哪条直 线完全在窗口外。所以得到一 个规律:
Cohen-Sutherland裁剪
若P1P2完全在窗口内code1=0,且code2=0,则 “取”
若P1P2明显在窗口外code1&code2≠0,则“弃” 在交点处把线段分为两段。其中一段完全在窗
计算机图形学第五章
第五章 裁剪
教学学时:6课时
教学目的与要求:
让学生初步了解裁剪的定义,掌握对直线 段裁剪的一些基本算法,掌握简单的对多 边形裁剪的算法,掌握算法的理论原理, 能够分析基本算法的优缺点。
教学重点:Cohen-Sutherland算法,中点 分割算法,梁友栋—Barsky算法,参数化 算法,Sutlerland_Hodgman算法。
特点:用编码方法可快速判断线段的完 全可见和显然不可见。
中点分割裁剪算法
中点分割裁剪算法是对Cohen-Sutherland 直线段裁剪算法的改进。 在Cohen-Sutherland 直线段裁剪算法中, 为了避免求直线段与窗口 边界的交点, 用不断对分线段的方法排斥线段 在窗口外的部分, 最后求出离线段端点最远的 可见点(所谓可见点就是线段落在窗口内的点), 若这两点存在, 则这两点就是线段P1P2的可见线 段端点。
口外,可弃之。然后对另一段重复上述处理。
1001
1000
0001 0101
0000 0100
1010 0010 0110
P1 P3 P4
P2
Cohen-Sutherland 直线裁剪算法小结
本算法的优点在于简单,易于实现。他 可以简单的描述为将直线在窗口左边的 部分删去,按左,右,下,上的顺序依 次进行,处理之后,剩余部分就是可见 的了。在这个算法中求交点是很重要的, 他决定了算法的速度。另外,本算法对 于其他形状的窗口未必同样有效。
直接求交算法
直线与窗口边都 写成参数形式, 求参数值。
Cohen-Sutherland裁剪
基本思想: 对于每条线段P1P2分为三种情况处理: (1)若P1P2完全在窗口内,则显示该线段P1P2 。 (2)若P1P2明显在窗口外,则丢弃该线段。 (3)若线段不满足(1)或(2)的条件,则在
第五章 裁剪
5.1 裁剪概述 5.2 二维裁剪
5.2.1 直线段裁剪 5.2.2 多边形裁剪
5.1 裁剪概述
在使用计算机处理图形信息时,遇到的情况往往是计算机内 部存储的图形比较大,而屏幕显示只是图的一部分。例如,虽然 计算机内部可以存储全国地图,但是,如果把全国地图整幅显示 在屏幕上,则不能看到各地局部的细节。这时,可以使用缩放技 术,把地图中的局部区域放大显示。在放大显示一幅图形的一部 分区域时,必须确定图形中哪些部分落在显示区之内,哪些部分 落在显示区之外,以便显示落在显示区内的那部分图形。这个选 择处理过程称为裁剪。在进行裁剪时,画面中对应于屏幕显示的 那部分区域称为窗口。一般把窗口定义为矩形,由上、下、左、 右四条边围成。裁剪的实质就是决定图形中哪些点、线段、文字 以及多边形在窗口之内。
5.2.1 直线段裁剪
直线段裁剪算法是复杂图元裁 剪的基础。复杂的曲线可以通过折 线段来近似,从而裁剪问题也可以 化为直线段的裁剪问题。所以本章 重点讨论直线段的裁剪算法。算法 一般取的裁剪多边形都是矩形,有 些特殊的算法采用任意多边形裁剪。
点的裁剪
图形裁剪中最基本的问题。
假设窗口的左下角坐标为 (xL,yB),右上角坐标为 (xR,yT),对于给定点P(x,y), 则P点在窗口内的条件是要
大家应该也有点累了,稍作休息
大家有疑问的,可以询问和交流
5.2 二维裁剪
5.2.1 直线段裁剪
直接求交算法 Cohen-Sutherland算法 中点分割算法 Liang-Barskey算法 参数化裁剪算法
5.2.2 多边形裁剪
Sutlerland_Hodgman算法 Weiler-Athenton算法
满足下列不等式: xL <= x <= xR 并且yB <= y <= yT 否则,P点就在窗口外。
(xL,yB )
(xR,yT )
直线段裁剪
裁剪线段与窗口的关系:(1)线段完全可 见;(2)显然不可见;(3)其它
提高裁剪效率: 快速判断情形(1)(2), 对于情形(3),设法减 少求交次数和每次求 交时所需的计算量。
裁剪可以在世界坐标系中进行,即相对于窗口进行;也可 以把对象变换为设备坐标之后相对于视区进行。前者可以把不 在窗口范围内的部分剪掉, 避免了不必要的变换处理;后者在 设备坐标系中裁剪易于用硬件实现。
裁剪处理的基础是:点在窗口区域内外的判断以及计 算图形元素与窗口区域边界的交点。其原理虽然简单,但涉及 的图形元素多, 提高裁剪速度是算法应考虑的重要问题。以下 介绍直线段裁剪算法及多边形裁剪算法。