计算机图形学第2章 图形基元的显示

合集下载

02-计算机图形学基础(第二版)PPT课件

02-计算机图形学基础(第二版)PPT课件

透镜组
光 孔
触钮开关
导线
笔体 光导纤维
图2.3 光笔的结构
2021/7/22
7
图形输入设备
触摸屏(touch screen) 当用手指或者小杆触摸屏幕时,触点位置
便以光学的(红外线式触摸屏)、电子的(电 阻式触摸屏和电容式触摸屏)或声音的(声音 探测式)方式记录下来。
2021/7/22
8
图形输入设备
随机扫描(random-scan)的图形显示器中电 子束的定位和偏转具有随机性,即电子束的扫 描轨迹随显示内容而变化,只在需要的地方扫 描,而不必全屏扫描。
2021/7/22
31
随机扫描的图形显示器
2
Y
2
3
1
1
3
t
1
X
2
3
图2.16 随机扫描图形显示器的工作原理
2021/7/22
32
随机扫描的图形显示器
2021/7/22
52
2.4 显示子系统
光栅扫描图形显示子系统的结构 绘制流水线 相关概念
2021/7/22
53
光栅扫描图形显示子系统的结构
CPU
系统 主存
显示 控的光栅图形显示子系统
2021/7/22
54
光栅扫描图形显示子系统的结构
CPU
系统 主存
帧缓存
2021/7/22
41
液晶显示器——原理
液晶分子的排列在微弱的外部电场、磁场或者 应力、温度变化等作用下非常容易改变。当液 晶分子的某种排列状态在电场作用下变为另一 种状态时,液晶的光学性质随之改变,这种产 生光被电场调制的现象称为液晶的电光效应。
2021/7/22

计算机图形学_完整版 ppt课件

计算机图形学_完整版 ppt课件
三维观察设备 虚拟现实系统的输出显示设备 ……
输入设备
键盘、鼠标 按钮盒、旋钮 跟踪球、空间球 操作杆 触觉反馈设备 数据手套、数据衣 数字化仪 扫描仪 触摸板 光笔 ……
硬拷贝设备
打印机 喷墨 激光 ……
绘图仪 台式 大型滚动传送式 ……
图形硬件系统组成模块示意图:
或称图形坐标系、用户坐标系、全局坐标系 如在世界坐标系中进行装配
观察坐标系(viewing coordinate)
对场景进行观察所对应的坐标系 对象经变换到该场景的一个二维投影——投影变换
规范化坐标系(normalized coordinate)
可使图形软件与特定输出设备的坐标范围无关 坐标范围:-1~1,或0 ~ 1 等等
在场景中对物体移动、旋转、缩 放、扭曲等,或转换模型坐标系
3D→2D,并对观察区域进行裁 剪和缩放
一种伪变换,对窗口上的最终输 出进行移动、缩放等
三维几何变换
可用4×4矩阵操作统一表示二维和三维几何变换
缩放、旋转、 对称、错切等
平移
投影
整体缩放
基本变换:平移、旋转、缩放
复合变换:可由平移、旋转、缩放和其他变换的矩阵乘积 (合并)形成。
图元的绘制、显示过程
顶点 法向量、颜色、纹理… 像素
图元操作、像素操作 光栅化(扫描转换)
像素信息 帧缓存 显示器
调用底层函数,如 setPixel (x,y);将当 前像素颜色设定值存 入帧缓存的整数坐标 位置(x,y)处。
图元描述与操作
几何图元由一组顶点(Vertex)描述 这一组顶点可以是一个或是多个。每个顶点信息二维或 三维,使用 2~4 个坐标。顶点信息由位置坐标、颜色 值、法向量、纹理坐标等组成。

计算机图形学基础与CAD开发 第2章 图形输入输出设备

计算机图形学基础与CAD开发 第2章 图形输入输出设备

3. 图形扫描仪
功能: 图形扫描仪是利用光电技术和数字处理技术, 以扫描方式将图形或图像或者实物信息转换为数字信号的 一种输入装置。 主要用在图形图像处理、排版印刷、人事 档案管理、图纸存档管理、文字识别、机器翻译等领域。
种类:扫描仪主要分为滚筒式扫描仪和平面扫描仪。近 几年出现了笔式扫描仪、便携式扫描仪、胶片扫描仪、底 片扫描仪和名片扫描仪。
LED显示器基本结构是一块电致发光的半导体材料, 电流通过其中的化学物质而产生的光。
本节重点学习 : (1)基本概念 (2)光栅扫描显示器的结构、工作原理
一、光栅扫描显示器概念
➢ 显示器尺寸(显像管对角线的尺寸,以英寸为单位(1 " =2.54cm), 如15 " 、19"显示器)
➢ 像素点(Pixel)(1024×768 640×480)
➢ 屏幕分辨率(Screen Resolution) ➢ 点阵纵横比(Aspect Ratio)
(竖直与水平方向每英寸像素点之比) ➢ 前景(Foreground )
(屏幕上被字符和图形填充的区域) ➢ 背景(Background)
当使用者在台板上移动游标到指定位置,并将十字叉的交点对准数 字化的点位时,按动按钮,数字化仪则将此时对应的命令符号和该点的 位置坐标值排列成有序的一组信息,通过接口(多用串行接口)传送到 计算机。
种类:按结构与工作原理分,有电位梯度式、静电耦合 式、超声波式及电磁感应式等,其中电磁感应式应用较多。 功能:具有定位、拾取、选择三个基本功能。 主要性能指标有:
Ch2 图形输入与输出设备
本章掌握各种图形设备的结构、工作原理、性能指标。
图形输入设备 图形显示设备 图形输出设备
2.2 图形显示设备

第二章 基本图元的显示1

第二章 基本图元的显示1

图 形 学
第二章 基本图形元素的生成算法
(0,6)
(6,6)
(6,0)
(0,0) 计 算 机 图 形 学 (5,3)
(0,0)
第二章 基本图形元素的生成算法
扫描转换:通常把图像中的点、线、圆、区域和字符等图 形基本指令组成的显示文件转换成为显示缓冲器中图像的 位映像图的过程,成为扫描转换。 位图:是与屏幕图像每个像素点一一对应的图像矩阵, 矩阵中的每个元素就是像素的值(表示灰度级别与色 彩)。 选择扫描转换算法,速度与图像质量两者之间权衡折 衷。由于在建立一幅图形过程中,基本的图形扫描转 换算法将被调用成百上千此,因此,速度快一些是比 较可取的。
1 xi 1 x i x x i x x i 1 | x | 1 y i 1 y i y y i y y i k | y |
x=x-1;y=y-k; for(x=x1;x>=x2;x--) {putpixel(x,round(y));y=y-k;}
(X1,Y1)的像素点,对应的显示缓冲器地址为: 字节地址= S + ( H / 8 ) * Y1 + ( X1 / 8 ) 的整数部分 字节内的位地址= X1 / 8 的余数 计 算 机 图 形 学
第二章 基本图形元素的生成算法
2.1.2 直线段的生成
数学上的直线是由无数个点构成的集合,显 然,光栅显示器只能近地似显示直线。对 于水平、垂直和45°斜线是可以达到较为 满意的效果的。当我们对直线进行光栅化 时,需要确定最佳逼近该直线的一组象素。 扫描转换直线段就是计算出落在直线段上 或充分靠近它的一串像素,并以此像素近 似代替原连续直线段在屏幕上显示的过程。
计 算 机 图 形 学

计算机图形学基础 ppt课件

计算机图形学基础 ppt课件

第二章 计算机图形学基础
机械CAD/CAM
虚拟现实(Virtual Reality
第二节 图形的几何变换
图形变换指对图形的几何信息经过几何变换后产生新 的图形,提出的构造或修改图形的方法。
除图形的位置变动外,可以将图形放大或缩小,或者对图形
作不同方向的拉伸来使其扭曲变形…
• 图形变换基本知识
• 二维图形基本几何变换
(4)图形编辑
如何对图形进行组合、分解、插入、裁剪等技术。
第二章 计算机图形学基础
三 计算机图形学的应用
(1)在机械设计中的应用
机械CAD/CAM
(a)工程图
(b)线框图 (c)实体图
第二章 计算机图形学基础
机械CAD/CAM
(2)科学计算可视化
广泛应用于医学、流体力学、有限元分析及气候分析中。
(3)计算机动画
第二章 计算机图形学基础
机械CAD/CAM
(4)过程监控
用曲线来模拟火箭发射的飞行轨迹,同时不断修正参数。
(5)计算机辅助教学
利用计算机图像可以清楚的表现数学曲线、几何曲面的形成。
(6)虚拟现实技术
用计算机技术来生成一个逼真的三维视觉、听觉、 触觉或嗅觉等感觉世界,让用户可以从自己的视点出发, 利用自然的技能和某些设备对这一生成的虚拟世界客体 进行浏览和交互考察。
平移变换
图形的每一个点在给定的方向上移动相同距离所得的变换称为 平图移形变在换x轴。方向的平移量为l, 在y轴方向的平移量为m,
则坐标点的平移变换:
几何关系
x' x l
y
'
ym
矩阵形式
1 0 0
x y 1=x y 1 0

最新2019-计算机图形学第二章-PPT课件

最新2019-计算机图形学第二章-PPT课件


是一维线性表,其每一项的内容对应一种颜色,它的 长度由帧缓存单元的位数决定,例如:每单元有8位, 则查色表的长度为28=256 目的:在帧缓存单元的位数不增加的情况下,具有大 范围内挑选颜色的能力:
2.1.4 光栅扫描的示系统 存放方式


颜色信息在帧缓存中两种存放方式:一是颜色值 直接存储在帧缓存中。二是把颜色码放在一个独 立的表中,帧缓存存放的是颜色表中各项的索引 值,颜色范围扩充了。 单色系统:查色表固化 彩显:可修改、创建查色表。
GKS
-- 提供了在应用程序和图形输入输出设备之间的 功能接口。 -- 与语言无关。 -- GKS提供了一个称为元文件的顺序文件接口 -- 应用程序的所有图形资源由GKS控制(通过 GKS元文件-GKSM) -- GKSM用于:图形信息存档;系统传送图形信息;
在GKS应用程序间传送图形信息; 与图形信息相关的非图形信息的存储和复用。
2.1 图形显示器
2.1.1 阴极射线管
2.1.2 彩色阴极射线管 射线穿透法 影孔板法 2.1.3 随机扫描显示系统
2.1.4 光栅扫描系统
2.1.1 阴极射线管
阴极射线管(CRT)
–组成:包括电子枪、聚焦系统、加速电极、偏转系统、荧光屏 –工作原理:电子枪发射电子束,经过聚焦系统、加速电极、
2.1.2 彩色阴极射线管

影孔板法

原理:影孔板被安装在荧光屏的内表面,用于精 确定位像素的位置
影孔板
外层玻璃
荧光涂层
2.1.2 彩色阴极射线管

影孔板的类型 点状影孔板 代表:大多数球面与柱面显像管 栅格式影孔板 代表:Sony的Trinitron与Mitsubishi的 Diamondtron显像管

CG02 图形系统

CG02 图形系统

图形输入设备
• 常用的图形输入设备
– 键盘 – 鼠标
• 另外
– 跟踪球、空间球 – 光笔、触摸板、图形扫描仪 – 数字化仪、手写输入板 – 语音输入 – 数据手套
图形输出设备
• 包括图形显示设备和图形绘制设备
–图形显示设备: 用于在屏幕上输出图形
• 基于阴极射线管的监视器 • 液晶显示器 • 等离子显示器
RGB颜色立方体
彩色阴极射线管
红、绿、蓝(RGB)
任何颜色可以用这三种荧 光粉相混而成
(每个小点直径<0.1mm) 另一个颜色模型CMY(青、洋
红、黄) 产生彩色的常用方法:
射线穿透法、影孔板法
显示的颜色个数
调节各电子枪发生的电子束中所含电子的数 目,即可控制各色光点亮度。
如果每支电子枪发出的电子束的强度有256个等级,则显示 器能同时显示256*256*256=16M种颜色,称为真彩系统
2. 存储功能和输入功能
• 存储功能
图形数据库可以存放各种图形的几何数据及图形之 间的相互关系,并能快速方便地实现对图形的删除 、增加、修改等操作。
• 输入功能
通过图形输入设备可将基本的图形数据(如点、线 等)和各种绘图命令输入到计算机中,从而构造更 复杂的几何图形。
3.输出功能和交互功能
• 输出功能
图形的基本处理流程
• 利用各种图形输入设备及软件或其他交互设备将图形 输入到计算机中,以便进行处理;
• 在计算机内部对图形进行各种变换(如几何变换、投 影变换)和运算(如图形的并、交、差运算等);
• 处理后,将图形转换成图形输出系统便于接受的表示 形式,并在输出设备上输出;
• 在交互式的系统中上述过程可重复进行多次,直至产 生满意的结果。

第二章 图形基元的显示

第二章 图形基元的显示

pi +1 = pi + 2(∆y − ∆x)
pi ≥0
& & ,应取 y i +1 = y i + 1
& & pi < 0 ,应取 y i +1 = y i
∆y & & x1 + b 确定P1 x1 = x 1 , y1 = y1 = , ∆x
令i=1,可计算求出:
pi +1 = pi + 2∆y
d1 = d 2
,取两象素点中的任意一个
pi = ∆x(d1 − d 2 ) & & = 2∆y ⋅ xi − 2∆x ⋅ y i + c
& & pi +1 = 2∆y ⋅ xi +1 − 2∆x ⋅ y i +1 + c & pi +1 − pi = 2∆y − 2∆x( y i +1 − y i )
演示
考虑用2d来代替d 考虑用2d来代替d的计算 2d来代替
void MidpointLine (int x0,int y0,int x1,int y1) { int a,b,delta1,delta2,d,x,y ; a = y0 - y1; b = x1 - x0; d=2*a+b; delta1 = 2 * a ; delta2 = 2 *( a + b);
中点画线法的实现: 中点画线法的实现: 起点和终点分别为 ( x0 , y0 ) 和 ( x1 , y1 )。 F(x , y) = ax + by + c = 0 其中, 其中 , a=y0 - y1 , b=x1 - x0 , c=x0y1 -x 1y 0 。 直线上的点, 直线上的点,F (x,y) = 0 ; 直线上方的点, )>0 直线上方的点,F(x,y)>0 ; 直线下方的点, )<0 直线下方的点,F(x,y)<0。

计算机图形学习题参考答案(完整版)

计算机图形学习题参考答案(完整版)

计算机图形学习题参考答案第1章绪论1、第一届ACM SIGGRAPH会议是哪一年在哪里召开的?解:1974年,在Colorado大学召开了第一届SIGGRAPH年会。

2、计算机图形学之父是谁?解:Sutherland3、列举一些计算机图形学的应用领域(至少5个)。

解:计算机辅助设计、图示图形学、计算机艺术、娱乐、教学与培训、可视化、图像处理、图形用户界面等。

4、简要介绍计算机图形学的研究内容。

解:(1)图形的输入。

如何开发和利用图形输入设备及相关软件把图形输入到计算机中,以便进行各种处理。

(2)图形的处理。

包括对图形进行变换(如几何变换、投影变换)和运算(如图形的并、交、差运算)等处理。

(3)图形的生成和输出。

如何将图形的特定表示形式转换成图形输出系统便于接受的表示形式,并将图形在显示器或打印机等输出设备上输出。

5、简要说明计算机图形学与相关学科的关系。

解:与计算机图形学密切相关的学科主要有图像处理、计算几何、计算机视觉和模式识别等。

计算机图形学着重讨论怎样将数据模型变成数字图像。

图像处理着重研究图像的压缩存储和去除噪音等问题。

模式识别重点讨论如何从图像中提取数据和模型。

计算几何着重研究数据模型的建立、存储和管理。

随着技术的发展和应用的深入,这些学科的界限变得模糊起来,各学科相互渗透、融合。

一个较完善的应用系统通常综合利用了各个学科的技术。

6、简要介绍几种计算机图形学的相关开发技术。

解:(1)OpenGL。

OpenGL是一套三维图形处理库,也是该领域事实上的工业标准。

OpenGL独立于硬件、操作系统和窗口系统,能运行于不同操作系统的各种计算机,并能在网络环境下以客户/服务器模式工作,是专业图形处理、科学计算等高端应用领域的标准图形库。

以OpenGL为基础开发的应用程序可以十分方便地在各种平台间移植;OpenGL与C/C++紧密接合,便于实现图形的相关算法,并可保证算法的正确性和可靠性;OpenGL使用简便,效率高。

计算机图形学完整课件

计算机图形学完整课件

由于我们使用的只是d的符号,而且d的增量都是整数,只是其初始值包含小数。因此,我们可以用2d代替d,来摆脱小数,写出仅包含整数运算的算法:
void MidpointLine(x1,y1,x2,y2,color) int x1,y1,x2,y2,color; { int a,b,d1,d2,dx,y; a=y1-y2; b=x2-x1; d=2*a+b; d1=2*a; d2=2*(a+b); x=x1; y=y1;
setpixel(x,y,color); while(x<x2) { If(d<0) {x++;y++d+=d2;} else {x++;d+=d1;} setpixel(x,y,color); }
2.1.3 Bresenham 画线算法
算法分析
算法推导
可视化效果图
2.1.4 图形环境的设置
1.2 计算机图形学的发展
1.2.1 计算机图形学的发展简史 50年代准备阶段 60年代发展阶段 70年代推广应用阶段 80年代系统实用化阶段 90年代标准化智能化阶段
1.2.2 计算机图形学的发展方向 造型技术的发展 真实图形生成技术的发展 人—机交互技术的发展 模拟艺术的仿真 计算机动画
另外,为了方便起见,我们只考虑中心在原点,半径为整数R的圆x2+y2=R2。对于中心不在原点的圆,可先通过平移变换,化为中心在原点的圆,再进行扫描转换,把所得的像素坐标加上一个位移量即得所求像素坐标。
1.3 计算机图形学的应用
1.用户接口 2.计算机辅助设计与制造(CAD/CAM) 3.地形地貌和自然资源图 4.计算机动画和艺术 5.件 计算机图形系统软件 计算机图形显示原理 光栅扫描式图形显示器

第2讲-计算机图形学基础

第2讲-计算机图形学基础
F x
•算法小结
21:16
• 研究图形的基本生成算法,其宗旨是尽快提高算法的计算速度、精度 及可靠性,为各种图形平台提供算法支撑。 • 原则:尽量避免除法、浮点运算,尽可能采用整数加减及移位等运算。
计算机图形学基础
计算机图形学与CAD技术
计算机图形学主要内容
1.图形生成及算法 1.1 基本图形生成 1.2 基本图形算法 2.图形变换 2.1 二维图形几何变换 2.2 三维图形几何变换 3.图形显示 3.1 坐标系统 3.2 二维图形显示流程 3.3 规范化和视口变换 3.4 二维裁减算法
计算机图形学基础
计算机图形学与CAD技术
算法应用举例 直线起点P0(0,0),终点P1(5,2)
Line: P0(0, 0)-- P1(5, 2) 3 2 1 0 1 2 3 4 5
DDA算法实现
计算机图形学基础
计算机图形学与CAD技术
2) Bresenham算法 Bresenham算法是目前使用最广泛的直线生成算法。 过各行各列象素中心构造一组虚拟网格 线。按直线从起点到终点的顺序计算直 线与各垂直网格线的交点,然后根据误 差项的符号确定该列象素中与此交点最 近的象素(如右图所示)。 -算法思想
d d d
d
假设直线方程为:yi+1 = yi + k ( xi +1 – xi ),且横坐标象素为 xi,其纵 坐标为yi ,斜率 k < 1 ; 那么下一个象素的横坐标为 xi+1,而纵坐标要么为yi,要么递增1为 yi+1,是否增1取决于误差项d的值。 误差项 d 的初值 d0 = 0,x 坐标每增加 1,d 的值相应递增直线的斜 率值 k,即 d=d+k。 一旦 d≥1,就把它减去1,这样保证 d 在 0、1 之间; 当 d ≥ 0.5 时,直线与垂线 x = xi + 1 交点最接近于当前象素 (xi,yi) 的右上方象素 ( xi+1,yi+1 ); 而当 d < 0.5 时,更接近于右方象素 ( xi+1,yi ) 。 为方便计算,令e =d-0.5,e 的初值为-0.5,增量为 k; 当e ≥ 0 时,取当前象素 (xi,yi)的右上方象素(xi+1,yi+1); 而当 e < 0 时,取 ( xi,yi )右方象素 ( xi+1,yi )。

计算机图形学第二章基本图形的生成与计算ppt课件

计算机图形学第二章基本图形的生成与计算ppt课件
• M在Q的上方-> P1离直线更近更近->取P1 • M与Q重合, P1、P2任取一点。
P2 Q
P=(xp,yp) P1
• 问题:如何判断M与Q点的关系?
直线中点画线法
假设直线方程为:ax+by+c=0 其中a=y0-y1, b=x1-x0, c=x0y1-x1y0 由常识知:
Fx, y0 Fx, y0 Fx, y0
Dy
1a True 1b False 2a Ture 2b False
1
m
1/m 1
-1
m
-1/m 1
3a True 3b False 4a Ture 4b False
-1
-m
-1/m -1
1
-m
1/m -1
表2.1
研究表2.1的数据,可以得到如下规律:
1、当|dx|>|dy|时
|Dx|=1 ,|Dy|=m
直线中点画线法
画线从(x0, y0)开场,d的初值
d0=F(x0+1, y0+0.5)= a(x0 +1)+b(y0 +0.5)+c
a+0.5b
= F(x0, y0)+a+0.5b =
由于只用d 的符号作判断,为了只包含整数运 算,
可以用2d代替d来摆脱小数,提高效率。
直线中点画线法
void Midpoint Line (int x0,int y0,int x1, int y1,int color)
否则
|Dx|=1/m ,|Dy|=1
2、Dx,Dy的符号与dx,dy的符号相同
依据上述规律可以生成直线,每生成一条直线 做两次除法,画线中的每点做两次加法,所以 DDA算法生成直线的速度还是很快的。

计算机图形学基础知识

计算机图形学基础知识

计算机图形学复习资料第一章1 计算机图形学定义指用计算机产生对象图形输出的技术。

确切地说,计算机图形学是研究通过计算机将数据转换为图形,并在专门显示设备上显示的原理、方法和技术的学科。

2 计算机生成图形的过程对象→模型→图形对象:客观存在的实体。

可以是各种具体的、实在的物体,也可以是抽象的、假想的事物。

模型:能够正确地表达出一个对象性质、结构和行为的描述信息。

图形:对象的一种外在表现形式,它是对象有关信息的具体体现。

3 与其他学科的关系图象处理是指用计算机来改善图象质量的数字技术。

模式识别是指用计算机对输入图形进行识别的技术。

计算几何学是研究几何模型和数据处理的学科。

交互式计算机图形学是指用计算机交互式地产生图形的技术。

4图形学主要研究内容1.图形的生成和表示技术2.图形的操作与处理方法3.图形输出设备与输出技术的研究4.图形输入设备、交互技术及用户接口技术的研究5.图形信息的数据结构及存储、检索方法6.几何模型构造技术7.动画技术8.图形软硬件的系列化、模块化和标准化的研究9.科学计算的可视化5 图形系统的硬件•计算机图形系统:计算机(CPU)、图形处理器(GPU)、图形显示器、输入设备和硬拷贝设备•CRT图形显示器工作方式有两种:随机扫描方式和光栅扫描方式随机扫描光栅扫描光栅扫描不是摘录于PPT的:(作为一个图形系统,至少应具有计算、存储、输入、输出、对话等五个方面的基本功能。

计算机图形系统主要有三部分构成:人、图形软件包、图形硬件设备。

图像硬件设备通常由图形处理器、图形输入设备和输出设备构成。

)6 基本概念(性能指标)•象素屏幕上可以点亮或熄灭的最小单位•分辨率显示屏上象素的总数,常用每行象素数与行数的乘积表示•亮度等级或称灰度等级数目是指单色显示器象素的亮度可以有多少种不同的变化•帧存储器存储屏幕上每个象素对应的颜色或亮度值7 颜色系统•RGB(红、绿、蓝)、•颜色查询表(color lookup table)、•CMY(青、品红、黄)、•HSV(色彩、饱和度、亮度)8 计算机图形标准计算机图形的标准是指图形系统及其相关应用系统中各界面之间进行数据传送和通信的接口标准,以及供图形应用程序调用的子程序功能及其格式标准,前者为数据及文件格式标准,后者为子程序界面标准.10 图形软件标准的形成一些非官方图形软件,广泛应用于工业界,成为事实上的标准DirectX (MS)Xlib(X-Window系统)OpenGL(SGI)Adobe公司Postscript11 计算机图形学的应用计算机辅助设计及计算机辅助制造科学计算可视化地图制图与地理信息系统计算机动画、游戏用户接口计算机艺术第二章图形基元的显示•第一节直线扫描转换算法•第二节圆的扫描转换算法•第三节椭圆扫描转换算法•第四节线宽与线型的处理•第五节区域填充1 基本概念扫描转换将图形描述转换成用象素矩阵表示的过程图形基元(输出图形元素)图形系统能产生的最基本图形线段、圆、椭圆、多边形第一节直线扫描转换算法DDA直线扫描转换算法中点画线法Bresenham画线算法1 DDA算法最基本思想:从x的左端点x0开始,向x右端点步进,步长=1(个像素)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
它的符号确定下一象素。
d≥0 时,取正右方象素P1 ,判断再 下一个象素应取哪个,应计算
d1 = F ( xi+2 ,yi+0.5 ) = a ( xi+2 ) + b ( yi+0.5 ) +c =d+a
故d的增量为a。 而若d<0,则取右上方象素P2。要判
断再下一个象素,则要计算
d2 = F ( xi+2,yi+1.5 ) = a ( xi+2 ) +b ( yi+1.5 ) + c = d+a+b
考虑用2d来代替d的计算
void MidpointLine (int x0,int y0,int x1,int y1) { int a,b,delta1,delta2,d,x,y ;
a = y0 - y1; b = x1 - x0; d=2*a+b; delta1 = 2 * a ; delta2 = 2 *( a + b);
它(是x直i ,y线i )上点
的最(接xi ,近yi )位置
(
x)i
x i
现在看第i+1步如
何确定第i+1个象
素点的位置。
d2 d1
d 1
y
yi
m(xi
1)
b
yi
d 2
(yi
1)
y
(y 1)
m(xi
1)
b
d 1
d 2
2m(xi 1) 2yi 2b 1
d 1
d2 ,下一个象素点取 (xi 1,yi 1)
x2,int y2)
{double dx,dy,e,x,y;
dx=x2-x1;
dy=y2-y1;
e=(fabs(dx)>fabs(dy))?fabs(d
x):fabs(dy);
dx/=e; dy/=e;
x=x1; y=y1; for(int i=1;i<=e;i++) {
SetPixel((int)(x+0.5), (int)(y+0.5));
x = x0 ; y = y0 ; SetPixel(x,y); while( x<x1 ) {
if( d<0 ) {
x ++; y ++;
d+= delta2; }
else {
x ++; d+= delta1; } SetPixel(x,y); } /* while */ }/* MidpointLine */
x+=dx; y+=dy; } }
假定直线斜率在0、1之间
x= xi时已选(xi,yi)象素 x= xi +1与直线最近的象素 P1 ( xi + 1,yi )、 P2 ( xi+1, yi+1)
M表示P1与P2的中点 M = ( xi+1,yi +0.5)。 Q是直线与垂直线x=xi +1的交点 应若取M为在下Q一的个下象方素,则P2离直线近,
(0,0)、(5,2) a = y0 -y1 = -2,b =
x1 - x0 = 5 d0 = 2 * a + b = 1
x
y
d
0
0
1(-4)
1
0
-3(+6)
2
1
3(-4)
3
1
-1(+6)
4
2
5(-4)
5
2
1(x=x1=5)
斜率m在0到1
之间,并且 x2
x 1
设在第i步已经确定
第i个象素点是 ,
d 1
d2,下一个象素点取(xi 1,yi)
d 1
d 2
,取两象素点中的任意一个
pi x(d1 d2 ) 2y xi 2x yi c
pi1 2y xi1 2x yi1 c
pi1 pi 2y 2x( yi1 yi )
pi 0 ,应取 yi1 yi 1
pi 1 pi 2(Δy-Δx)
中点画线法的实现
起点和终点分别为 ( x0 , y0 ) 和( x1 , y1 )。
F(x , y) = ax + by + c
其中,a=y0-y1,b=x1-x0,
c=x0y1-x1y0 。 直线上的点,F (x,y) = 0 ; 直线上方的点,F(x,y)>0 ; 直线下方的点,F(x,y)<0。
故在第二种情况,d的增量为a+b
再看d的初始值。显然,第一个象素 应取左端点(x0,y0),相应的判别式值 为
d0 = F (x0 +1,y0 +0.5 ) =a(x0+1)+b( y0 +0.5 )+c = ax0+by0 +c+a+0.5b =F (x0,y0) + a + 0.5b 由于(x0,y0)在直线上, 故F(x0,y0)=0。 因此,d的初始值为d0 = a+0.5b
pi 0 ,应取 yi1 yi
pi1 pi 2y
确定P1 ,
x1
x1,
y1
y1
y x
x1b
令i=1,可计算求出:
p1 2yx
void BresenhamLine(int x1,int y1,int x2,int y2)
{ int x,y,dx,dy,p; ; p=2*dy-dx; for(;x<=x2;x++) {
设待画线段两端点的坐标值 (x1,y1)和(x2,y2),假定 x1<x2
y=mx+b
m=(y2-y1)/(x2-x1)
b=(x2y1-x1y2)/(x2-x1)
m 1,对x每增1取允许的各整
数值
m
Δy
y i1
y i
Δx
x i1
x i
void DDALine(int x1,int y1,int
SetPixel(x,y); if(p>=0) { y++; p+=2*(dy-dx); } else { p+=2*dy; }
} }
第二节 圆的扫描转换算法
x2+y2=R2 y R2 x2
x Rcosθ y Rsinθ
中点画圆法
讨论如何从点(0,R)至
( R / 2 ,R / 2 )的1/8圆周
第二章 图形基元的显示
• 扫描转换 将图形描述转换成用象 素矩阵表示的过程
• 图形基元(输出图形元素)图形 系统能产生的最基本图形
• 线段、圆、多边形
• 第一节 直线扫描转换算法 • 第二节 圆的扫描转换算法 • 第三节 区域填充
第一节 直线扫描转换算法
• DDA直线扫描转换算法 • 中点画线法 • Bresenham画线算法
将M代入F(x,y)
d = F(M) = F( xi+1,yi+0.5 ) =a ( xi+1 ) + b ( yi+0.5 ) + c 当 d < 0 时,M在直线下方(即在Q的 下方) ,应取右上方的P2 。
而当d > 0,则取正右方的P1。
当d=0时,二者一样合适,取P1。
对每一个象素计算判别式d,根据
相关文档
最新文档