当前位置:文档之家› 第2讲 计算机图形学基础-基本图形生成

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


华中科技大学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中心
相关主题