第2讲 计算机图形学基础-基本图形生成
合集下载
《基本图形的生成》课件

《基本图形的生成》PPT 课件
这份PPT课件旨在向您展示基本图形的生成方法,帮助您深入理解这一概念。 通过介绍不同的图形生成技术,我们将带您走进图形生成的魅力世界。
课件目标
清晰明了
通过简明的讲解和实例演示, 让您更好地理解基本图形的生 成。
生动有趣
用趣味的方式呈现内容,使您 在学习的过程中保持积极的关 注和参与。
2 B样条曲线
由多个片段构成,每个片段由一组控制点控制,灵活且逼近真实曲线。
3 样条曲线拟合通过一系列来自点来逼近实际曲线,生成光滑且高度接近的曲线。
矩形和正方形的生成
中心点和长度
顶点坐标和边长
通过确定矩形的中心点坐标和长度,可以轻松生成矩形。 通过指定正方形的顶点坐标和边长,可以迅速绘制出完 美的正方形。
3 持续学习和探索
图形的生成是一个广阔的领域,只有不断学习和探索,才能不断提高自己的图形设计能 力。
实用可应用
将学到的知识应用到实际案例 中,提供一些实用的技巧和建 议。
基本图形的定义
1 直观易懂
基本图形是由简单的几何元素组成,如点、线、矩形和圆形等。它们是构建更复杂图形 的基础。
2 重要性
理解基本图形的生成是学习图形设计和计算机图形学的关键,为后续学习打下坚实基础。
3 灵活性
基本图形可以通过不同的算法和技术进行生成,使其具备无限的创造力和变化性。
多边形
通过多个顶点的坐标来定义多 边形的边界,可以创造出封闭 和开放的多边形。
自定义图形
利用基本图形生成的技术和算 法,可以实现各种自定义的图 形效果。
总结和要点
1 学以致用
学习图形的生成技术,让您能够应用到实际的图形设计和计算机图形学项目中。
这份PPT课件旨在向您展示基本图形的生成方法,帮助您深入理解这一概念。 通过介绍不同的图形生成技术,我们将带您走进图形生成的魅力世界。
课件目标
清晰明了
通过简明的讲解和实例演示, 让您更好地理解基本图形的生 成。
生动有趣
用趣味的方式呈现内容,使您 在学习的过程中保持积极的关 注和参与。
2 B样条曲线
由多个片段构成,每个片段由一组控制点控制,灵活且逼近真实曲线。
3 样条曲线拟合通过一系列来自点来逼近实际曲线,生成光滑且高度接近的曲线。
矩形和正方形的生成
中心点和长度
顶点坐标和边长
通过确定矩形的中心点坐标和长度,可以轻松生成矩形。 通过指定正方形的顶点坐标和边长,可以迅速绘制出完 美的正方形。
3 持续学习和探索
图形的生成是一个广阔的领域,只有不断学习和探索,才能不断提高自己的图形设计能 力。
实用可应用
将学到的知识应用到实际案例 中,提供一些实用的技巧和建 议。
基本图形的定义
1 直观易懂
基本图形是由简单的几何元素组成,如点、线、矩形和圆形等。它们是构建更复杂图形 的基础。
2 重要性
理解基本图形的生成是学习图形设计和计算机图形学的关键,为后续学习打下坚实基础。
3 灵活性
基本图形可以通过不同的算法和技术进行生成,使其具备无限的创造力和变化性。
多边形
通过多个顶点的坐标来定义多 边形的边界,可以创造出封闭 和开放的多边形。
自定义图形
利用基本图形生成的技术和算 法,可以实现各种自定义的图 形效果。
总结和要点
1 学以致用
学习图形的生成技术,让您能够应用到实际的图形设计和计算机图形学项目中。
计算机图形学基本图形生成法算法原理课件资料

扫描线填充算法实质,基本概念,具体实现:
区域填充的过程(2W)、扫描线填充的基本过程,两个问 题、两个连贯性、有序边(表)、活化边(表)、边的结 构、判断顺序.
二、种子填充算法
❖多边形表示方法
✓顶点表示 ✓点阵表示
顶点表示:用多边形顶点的序列来刻划多边形 特点:直观、几何意义强、占内存少;不能直接用于面
ee20
45 432/4 5-/14 ∧
e2
5 43/4 5/4 ∧
活化边表的建立 有序边表
8^ 7^ 6^ 5^ 4^ 3^ 2^
1^
0^
e5
10 7 -5/3
e3
11 12 0 ∧
e4
11 7 5/4 ∧
10 2 0 ∧
e6 e0
4 5 -1
e2
5 7 5/4 ∧
活化边表
Y=4
10
Y=5
10
e6
(3)按从下到上的顺序对纵坐标值为y的扫描线(当前扫描 线)执行下列步骤,直到有序边表ET和活化边表AEL都 变成空为止.
a)如有序边表ET中的第y类元素非空,则将属于该类的所有 边从ET中取出并插入第y类扫描线的活化边表中,AEL中 的各边按照x值(当x值相等时,按Δx值)递增方向排序. 边的增加和排序
着色;广泛应用于各种几何造型系统; 点阵表示:用位于多边形内的象素的集合来刻划多边形 特点:失去了许多重要的几何信息(边界、顶点等);
易于面着色;光栅显示系统显示时所需的表示形式;
❖光栅系统中两种基本的区域填充算法
✓针对采用顶点表示的多边形
通过确定横越区域的扫描线的覆盖间隔来填充 的多边形扫描转换区域填充算法,主要填充简单多 边形、圆、椭圆以及其它简单的曲线. ——扫描线填充算法 ✓针对采用点阵表示的多边形
区域填充的过程(2W)、扫描线填充的基本过程,两个问 题、两个连贯性、有序边(表)、活化边(表)、边的结 构、判断顺序.
二、种子填充算法
❖多边形表示方法
✓顶点表示 ✓点阵表示
顶点表示:用多边形顶点的序列来刻划多边形 特点:直观、几何意义强、占内存少;不能直接用于面
ee20
45 432/4 5-/14 ∧
e2
5 43/4 5/4 ∧
活化边表的建立 有序边表
8^ 7^ 6^ 5^ 4^ 3^ 2^
1^
0^
e5
10 7 -5/3
e3
11 12 0 ∧
e4
11 7 5/4 ∧
10 2 0 ∧
e6 e0
4 5 -1
e2
5 7 5/4 ∧
活化边表
Y=4
10
Y=5
10
e6
(3)按从下到上的顺序对纵坐标值为y的扫描线(当前扫描 线)执行下列步骤,直到有序边表ET和活化边表AEL都 变成空为止.
a)如有序边表ET中的第y类元素非空,则将属于该类的所有 边从ET中取出并插入第y类扫描线的活化边表中,AEL中 的各边按照x值(当x值相等时,按Δx值)递增方向排序. 边的增加和排序
着色;广泛应用于各种几何造型系统; 点阵表示:用位于多边形内的象素的集合来刻划多边形 特点:失去了许多重要的几何信息(边界、顶点等);
易于面着色;光栅显示系统显示时所需的表示形式;
❖光栅系统中两种基本的区域填充算法
✓针对采用顶点表示的多边形
通过确定横越区域的扫描线的覆盖间隔来填充 的多边形扫描转换区域填充算法,主要填充简单多 边形、圆、椭圆以及其它简单的曲线. ——扫描线填充算法 ✓针对采用点阵表示的多边形
计算机图形学ppt课件 第二章基本图形的生成与计算

for (x=x0; xx1, x++) drawpixel (x, int(y+0.5), color); y=y+k;
例:画直线段P0(0,0)--P1(5,2)
int(y+0.5) 0 0 1 1 2 2 y+0.5 0+0.5 0.4+0.5 0.8+0.5 1.2+0.5 1.6+0.5 2.0+0.5
角度DDA法
显然,确定x,y的初值及d值后,即可以增量方 式获得圆周上的坐标,然后取整可得象素坐标。 但要采用浮点运算、乘法运算、取整运算。
中点画圆法
利用圆的对称性,只须讨论1/8圆。第二个8分 圆 P(Xp ,Yp )
P1
M P2
P为当前点亮象素,那么,下一个点亮的象素可 能是P1(Xp+1,Yp)或P2(Xp +1,Yp +1)。
pi 2 xi dy 2 yi dx 2dy (2b 1)dx
(2.4)
在1a象限内,dx总大于0,所以pi可以判断d1d2的符号。Pi+1为
pi 1 2 xi 1dy (2 yi 1 2 yi 2 yi )dx 2dy (2b 1)dx
2( xi 1)dy (2 yi 1 2 yi 2 yi )dx 2dy (2b 1)dx
本算法是Bresenham在1965年提出。
设直线起点(x1,y1)终点(x2,y2),直 线可表示为 y mx b
y2 y1 dy b y1 m x1 , m x2 x1 dx
此处讨论先将直线方向限于1a象限,当
xi 1 xi 1
计算机图形学-基本图形的生成与显示

其中,因为P0(x0,y0)在直线上,所以
y0 kx0 b 0
则: d 0 0.5 k
(x0+1,y0+0.5) (x0,y0)
中点算法的改进——整数化判别式
改进:用2dΔx代替d, 令D=2dΔx 则:
D0 2 xd 0 2 x (0.5 k ) x 2 y di 0 Di 0 Di +1 2 xd i 1 2 x ( d i 1 k ) 2 xd i 2 x 2 y Di 2 x 2 y di 0 Di 0
12
中点画线算法
直线与空间的关系
y F(x,y)=0 F(x,y)>0 x F(x,y)<0 F(x,y)=0 F(x,y)>0 y
F(x,y)<0
x
图3 直线将平面分为三个区域
13
假定0≤k≤1,即0≤Δy/Δx≤1,x是最大位移方向 当前点 P 的下一点只能取 Pu 或 Pd,可用中点与直线 的位置关系来判定,中点偏差判别式
中点偏差判别式的初始值 直线的起点坐标为P0(x0,y0),x为主位移方向。 因此,第一个中点是(x0+1,y0+0.5),相应 的d的初始值为:
d 0 F ( x0 1, y0 0.5) y0 0.5 k ( x0 1) b
y 0 kx0 b k 0.5
Pu(xi+1,yi+1) Q M(xi+1,yi+1/2) P(xi,yi) Pd(xi+1,yi)
图4 中点算法生成直线的原理
中点M坐标为(xi+1, yi+0.5), 判别式:
d F ( xM , yM ) F ( xi 1, yi 0.5) yi 0.5 k ( xi 1) b
y0 kx0 b 0
则: d 0 0.5 k
(x0+1,y0+0.5) (x0,y0)
中点算法的改进——整数化判别式
改进:用2dΔx代替d, 令D=2dΔx 则:
D0 2 xd 0 2 x (0.5 k ) x 2 y di 0 Di 0 Di +1 2 xd i 1 2 x ( d i 1 k ) 2 xd i 2 x 2 y Di 2 x 2 y di 0 Di 0
12
中点画线算法
直线与空间的关系
y F(x,y)=0 F(x,y)>0 x F(x,y)<0 F(x,y)=0 F(x,y)>0 y
F(x,y)<0
x
图3 直线将平面分为三个区域
13
假定0≤k≤1,即0≤Δy/Δx≤1,x是最大位移方向 当前点 P 的下一点只能取 Pu 或 Pd,可用中点与直线 的位置关系来判定,中点偏差判别式
中点偏差判别式的初始值 直线的起点坐标为P0(x0,y0),x为主位移方向。 因此,第一个中点是(x0+1,y0+0.5),相应 的d的初始值为:
d 0 F ( x0 1, y0 0.5) y0 0.5 k ( x0 1) b
y 0 kx0 b k 0.5
Pu(xi+1,yi+1) Q M(xi+1,yi+1/2) P(xi,yi) Pd(xi+1,yi)
图4 中点算法生成直线的原理
中点M坐标为(xi+1, yi+0.5), 判别式:
d F ( xM , yM ) F ( xi 1, yi 0.5) yi 0.5 k ( xi 1) b
计算机图形学基础 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
计算机图形学基本图形生成算法

y= k· x+b
k=0.571429
b=0.428571
2 X[0]=1 y0 X[1]=2
Y[0]=1 Y[0]=1 Y[1]=kx[1]+b=1.57 Y[1]=y0+k=1.57 Y[2]=y1+k=2.14 Y[2]=kx[2]+b=2.14 Y[3]=y2+k=2.71 Y[3]=kx[3]+b=2.71 Y[4]=y3+k=3.28 Y[4]=kx[4]+b=3.28 Y[5]=y4+k=3.85 Y[5]=kx[5]+b=3.85 Y[6]=y5+k=4.4 Y[6]=kx[6]+b=4.4 Y[7]=5 Y[7]=5
第3章 基本图形生 成算法
1 直线生成算法(DDA、BRES) 2 圆生成算法(Mid) 3 多边形填充算法(扫描线、区域) 4 字符图元算法
2015/4/19
1
图元
• 图元:图形软件包中用了描述各种几何 图形元素的函数称为图形输出原语,简 称图元。 • 描述对象几何要素的输出图元一般称为 几何图元。点的定位和直线段是最简单 的几何图元。 • 在选定坐标系中指定一个图形的几何要 素后,输出图元投影到该输出设备显示 区域对于的二维平面上,并扫描转换到 帧缓存的整数像素位置。
2015/4/19
5
1 直线生成算法(DDA、BRES) 2 圆生成算法(Mid) 3 多边形填充算法(扫描线、区域) 4 字符图元算法
1 直线的DDA算法
2015/4/19
6
OpenGL画点和画线函数 1) 画点函数 glVertex*( ); (*={234}{sifd}[v]) 表示该函数有后缀,指 明空间尺寸、坐标数据类型或向量形式描述。 Ex: glBegin(GL_POINTS); glVertex2i(100,50); glEnd(); glBegin(GL_POINTS); glVertex2i(100,50); glVertex2i(75,90); glVertex2i(300,590); glEnd();
计算机图形学PPT课件

三维图形投影方法
正投影
平行光线垂直投射到投影面上 ,形成物体的正投影。
斜投影
平行光线与投影面成一定角度 投射,形成物体的斜投影。
透视投影
从视点出发,通过透视变换将 三维物体投影到二维平面上。
阴影生成
根据光源位置和物体形状,计 算阴影的位置和形状。
05
真实感图形绘制技术
Chapter
消隐技术
消隐算法分类
计算机图形学PPT课件
目录
• 引言 • 图形系统基础 • 基本图形生成算法 • 三维图形变换与观察 • 真实感图形绘制技术 • 曲线与曲面绘制技术 • 计算机动画技术 • 计算机图形学前沿技术
01
引言
Chapter
计算机图形学概述
01
02
03
计算机图形学定义
研究计算机生成、处理和 显示图形的一门科学。
平移变换 旋转变换 缩放变换 镜像变换
将三维图形沿x、y、z方向移动一 定距离,不改变图形形状和大小 。
在x、y、z方向分别进行缩放,可 改变图形的大小和形状。
三维图形复合变换
变换顺序
先进行缩放、旋转,再进行平移,注意变换顺序对结果的影响。
变换矩阵
将各种基本变换表示为矩阵形式,便于进行复合变换的计算。
医学诊断
通过计算机图形学技术,医生可以更 直观地了解病人病情,进行更准确的 诊断和治疗。
军事模拟
计算机图形学在军事模拟和训练中发 挥重要作用,提高训练效果和作战能 力。
THANKS
感谢观看
通过模拟自然现象或物理过程,生成具有真实感的动画效 果。
过程动画制作流程
建立自然现象或物理过程的数学模型,利用计算机图形学 技术模拟模型的运动和变化过程,生成具有真实感的动画 效果。
第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 )。
•算法小结
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 )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华中科技大学CAD中心
帧缓冲存储器
简称帧缓存 俗称显存
每个象素都对应于Buffer中的一个存储单元,用来存储象素颜色 (灰度)值的存储器,称为帧缓冲存储器。 目前,显示器均采用32bit来表示颜色,其中R、G、B各8位, 另8位可用于表示色彩透明度,此即颜色的RGBA表示。 分辨率1024x1024的一帧图像,其显存所需容量: = 1024x1024x32bit/8 =4M(byte)
华中科技大学CAD中心
—— 直线生成算法
画直线是CAD中最常用的操作,在光栅显示器上画线只能以点近 地似显示。
如下图,从(x1, y1)到(x2, y2)画直线实质上是寻找最佳逼近 直线的象素序列,并填入色彩数据,该过程称为直线光栅化,也 称直线扫描转换。
常用算法有:直线DDA算法、中点算法、Bresenham算法等,其 中以 Bresenham算法效率高,应用最广泛。
—— 阴极射线管显示器(CRT)
CRT是通过电子枪发射电子束,经过聚焦系统、加速电极、偏转系统,按行列 次序扫描点矩阵,轰击到荧光屏的不同点阵部位,被其内表面的荧光物质吸收, 在该点发光产生可见的图形。
华中科技大学CAD中心
彩色CRT显示器包含数以百万计的磷光点,成阵列排列。每个阵列点(称为 象素)有三个荧光点(红、绿、蓝三色),由三支电子枪控制各自电子束强 度实现不同亮度颜色,分别为红色、绿色和蓝色(即红、绿、蓝三基色), 当通过屏幕的电子束击中它们时,就会发光呈彩色图像。
本课程重点从CAD需求角度来 介绍相关研究内容: 工程产品设计中的二维工程图、 三维实体模型的显示
本章主要介绍: 基本图形生成原理
华中科技大学CAD中心
2.2、图形显示原理 – 颜色
华中科技大学CAD中心
2.2、图形显示原理
显示器是计算机上最常用的输出设备,用于显示文本和图形图像。目前显示器 多为平板显示器(LCD,LED、PDP,OLED),阴极射线管(CRT)。
P P1
M
y
考虑到圆的八对称 性,不妨以第二个 八分圆进行分析, 其它八分圆则可通 过镜像实现。 (-x,y) (x,y)
第2讲 计算机图形学基础——基本图形生成
2.1.计算机图形学概述 2.2.图形显示原理
— CRT显示器工作原理 — LCD显示器工作原理
2.3.基本图形生成算法
— 直线生成算法 — 圆弧生成算法 — 其它基本图形生成
2.4.图形裁减算法 2.5.多边形填充算法(选学) 2.6.图形反走样算法(选学) 2.7.基于OpenGL图形库生成图形(选学)
象素(Pixel)
荧光屏上画面的每一光点称为一个象素。 若屏幕尺寸一定,水平和竖直方向上能识别的最大像素个数用 分辨率来描述,如800*600,1024*768,1280*1024等。
分辨率
(Resolution)
若红(R)、绿(G)、蓝(B)三色每支电子枪发出的电子束强度为256个等 级,则显示器能同时显示256*256*256=16M种颜色,称为真彩色系统。
△x= x2-x1, △ y=y2-y1,k= △ y/ △x yi+1 = kxi+1+b = k(xi+1)+b = (kxi+b)+k = yi+k (xi , yi)→(xi+1 , yi+k) yi = round (yi) = (int) (yi+0.5)
k 1 k ≤1
上述算法简单,易实现,但有浮点数取整运算,不利于硬件实现,效率低; 算法仅适用于k
≤1的情形:x每增加1,y最多增加1。 当 k 1时,必须把x,y互换。
华中科技大学CAD中心
DDA算法实现
华中科技大学CAD中心
算法应用举例
设直线起点P0(0,0),终点P1(5,2)
Line: P0(0, 0)-- P1(5, 2) 3 2 1 0 1 2 3 4 5
华中科技大学CAD中心
象素的亮度值控制电子束对荧光屏的轰 击强度,象素在帧缓存寄存器中的位臵编码 控制电子束的偏转位臵。 图形系统为灵活控制图形颜色变化,往 往不直接将帧缓冲器中的数值作为显示的亮 度值,而是先经过颜色查找表(称调色板) 产生变换值来控制光点亮度。其工作方式:
显存中某位值 度 颜色表地址 屏幕上的亮
华中科技大学CAD中心
2) Bresenham算法原理
Bresenham算法是使用最广泛的直线生成算法。 该算法假设过各行各列象素中心构造一组虚拟网格线,按直线从起 点到终点的顺序计算直线与各垂直网格线的交点,然后根据误差项 的符号确定该列象素中与此交点最近的象素(如图)。
d d d
d
华中科技大学CAD中心
算法思想:
华中科技大学CAD中心
思考问题:
1)图形如何在屏幕上显示出来?? 2)CAD图形如何生成??
本章目的:
(1) 介绍显示器显示图形的基本原理; (2) 介绍基本图形元素的生成算法。
华中科技大学CAD中心
2.1.计算机图形学概述
计算机图形学主要研究用计算机进行图形信息的表达、输入、存储、显 示、输出、检索及图形运算等。具体地说,大致有以下内容: (1)图形的输入:研究如何把要处理的图形输入到计算机内,以便让计算 机进行各种处理。 (2)产生图形的算法:研究在显示器或其它输出设备上产生图形的算法; (3)图形的数据结构:研究图形在计算机内的表示方法; (4)图形的变换:研究图形的各种几何变换; (5)图形运算:包括图形的分解、组合等; (6)图形语言:各种图形处理功能的语言; (7)图形软件的标准化:图形软件与设备无关及接口兼容性。 总的来说,计算机图形学应该解决和研究下列一些问题: (1) 图形表示和处理的数学方法及其实现的计算机算法; (2) 设计一个好的图形软件支撑系统; (3) 设计与实际应用相结合的图形应用系统。
华中科技大学CAD中心
2.3.基本图形生成算法
思考:直线和圆弧如何在生成并显示 ? ? 无论是液晶显示器(LCD),还是阴极射线管显示器(CRT),都是通过改变 屏幕上象素点的颜色及亮度来显示图形。 对于一个二维CAD系统来说,直线、圆、圆弧、自由曲线是最常见的基本几 何要素。对于一个三维CAD系统来说,除了具备上述要素外,还需平面、圆 柱面、球面、圆环面及自由曲面。 曲线、曲面及三维形体将在后面章节介绍,本章仅介绍直线、圆弧的生成。
设直线方程为:yi+1 = yi + k ( xi +1 – xi ),斜率 k < 1 ,并设初始象素坐 标为( xi,yi ) ,误差初值 d0 = 0。 显然,若下一象素横坐标为 xi+1,则纵坐标yi+1可能为yi,或yi+1。 根据方程可知,x 坐标每增加 1,d 的值相应递增斜率值 k,即 d=d+ k; yi+1是否增1,则取决于误差项d的值,具体如下:
-算法特点
算法避免了除法及浮点运算,速度加快,精度高。 进一步改进:2 的倍数可采用移位操作,便于硬件实现,速度更快。
华中科技大学CAD中心
——圆弧生成算法
定义: 圆也是图形系统中常用的元素。我们将圆定义为所以距离中心位臵(xc, yc) 为给定值 r 的点集。圆的方程为: ( x xc ) 2 ( y yc ) 2 r 2 为叙述方便,仅考虑圆心在原点的圆(其它位臵圆可平移到原点位臵)。 不妨设函数: F ( x, y) x 2 y 2 r 2 显然有: F(x,y)< 0,则(x,y)位于圆边界内 F(x,y)= 0,则(x,y)位于圆边界上 F(x,y)> 0,则(x,y)位于圆边界外
如果 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 )。
华中科技大学CAD中心
1)直线DDA算法 (即微分算法)
直线y = kx+b中每一点坐标(xi+1 , yi+1 )都可由前一点坐标(xi , yi)加一个增量 (△x, △ y)而得到,即: xi+1 = xi+ △ x,yi+1=yi+ △ y,且△ y = k ·△ x。 设直线的起点(x1, y1)为所画直线的初值,考虑到象素为整数,于是画线算 法过程可表述为:
华中科技大学CAD中心
刷新频率
(仅CRT)
每秒钟重绘屏幕的次数, CRT产生稳定图像所需要的最小刷新频率: = 1秒 / 荧光物质的持续发光时间 (Hz) 注:液晶显示器原理不同于CRT,不受刷新频率影响。但液晶显示 有拖尾现象,是因液晶偏转延迟所致,延时越长,拖尾越重。
帧扫描
与电视工作原理类似, CRT电子束从上到下、 从左到右扫描进行, 每扫描一遍称为一帧。
华中科技大学CAD中心
-算法程序
void Bresenhamline ( int x0, int y0, int x1, int y1, int color )
{ int x, y, dx, dy; float k, e; dx = x1- x0;dy = y1- y0;k = dy / dx; e = - 0.5; x = x0;y = y0; for (i=0;i < dx;i++) { drawpixel (x, y, color);
LCD显示系统原理示意图
华中科技大学CAD中心