- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章二维图形的光栅显示
第4章 二维图形的光栅显示;显示系统是由显示器(Monitor)和显示控制适配器(Adapter,又称显示卡或图形卡)两部分组成。显示器的作用是将电信号转换为可以直接观察到的字符、图形或图像,是CAD中最为重要的人机交互设备。
4.1.1 CRT工作原理
以前采用阴极射线管CRT(Cathode Ray Tube)技术。但液晶显示LCD(Liquid Crystal Display)等技术设计的液晶显示器已获得应用。;1. 单色CRT
它利用电场产生高速的聚焦电子束,偏转到屏幕表面的不同部位,以产生可见的图形。
主要组成部分:电子枪、聚焦系统、偏转系统和荧光屏。
; 当电子束离开荧光点后,其亮度值随时间按指数规律衰减。余辉时间就是指光亮度衰减到初始1/10所需的时间。余辉时间非常短暂,一般在0.5~1ms之间。;2. 彩色CRT; CRT屏幕内部涂有很多组呈三角形的荧光粉,每一组有三个荧光点,当某组荧光粉被激励时,分别发出红、绿、蓝三个基色。;CRT的刷新频率是指每秒重画图像的次数。为了得到稳定的画面,通常刷新频率应为30~50帧/秒。;4.1.2 图形显示器的工作原理;基本工作过程:要显示的图形由计算机加工成显示器的显示指令——显示文件,存储在显示器的缓冲存储器中。;2. 光栅扫描显示器
光栅扫描显示器的工作原理是:
首先,屏幕网格化。;特点:
?帧缓存中存放的不是显示指令,而是对应每个像素的亮度或色彩信息。
? 可用于显示真实感的图形。
?光栅显示与原始图形的复杂程度无关。
? 屏幕上的每个像素都对应帧缓冲存储器的若干位。
? 各种扫描转换算法已固化在硬件中。
? 图形的近似表示。
;CPU;Raster-Scan Generator;CPU;CPU;4.1.3 图形显示卡
图形显示的核心部分是图形加速芯片。图形加速芯片是一个固化了一定数量最常用基本图形程序模块的集成电路,它大大减轻了CPU的负荷,加快了图形操作速度。
图形适配器从接口形式可分为ISA, VESA, PCI和AGP等。
1. 普通显示卡。如CGA、EGA、VGA、TVGA。这种卡的图形处理完全由主机CPU完成,价格低廉。;PCI
总线;3. 基于AGP的图形卡;;4.2 扫描转换
4.2.1 扫描转换的必要性;光栅图形的表示方法是点阵式,它的主要特点是面着色,即在指定的平面区域着上所需要的颜色。与单纯由线条所构成的线划图形相比,采用面着色绘制的光栅图形显得更为生动、直观,真实感更强。;y;4.2.2 点的扫描转换;Pixel
Coordinates;方法2:采用四舍五入的方法。即x’和y’分别为x+0.5及y+0.5的整数部分。;4.2.3 直线段的扫描转换;1. 直接应用直线方程
首先,将P1,P2扫描转换为像素坐标(x1’,y1’)和(x2’,y2’)。
其次,设m=(y2’-y1’)/(x2’-x1’), b=y1’-mx1’。若|m|=1,则对介于x1’和x2’之间的每个整数值x,用直线方程计算出y值并扫描转换(x,y)。若|m|1,则对介于y1’和y2’之间的每个整数值y,用直线方程计算出x值并扫描转换(x,y)。
缺点:因m,b都是浮点数,因此这种方法的每步都要进行浮点数乘法与加法计算。;例: 对于|m|=1的直线段,应用斜率-截距式方程绘制该线段需要哪些步骤?
计算dx: dx=x2-x1;
计算dy: dy=y2-y1;
计算斜率: m=dy/dx;
计算截距b: b=y1-m·x1;
设xend为x1与x2中的最大者,若dx0,则x=x2,y=y2, 且xend=x1; 若dx0, 则x=x1,y=y1, 且xend=x2;
检查整条线段是否绘制完毕,如果x xend,则停止运行;
在当前(x,y)坐标处画点;
增大x: x=x+1;
根据方程y=mx+b计算下一个y值;
返回第6步。;2. DDA(Digital Differential Analyzer)算法
该算法是增量扫描转换方法。假设在第i步求出了直线上的点(xi,yi)。由于下一点 满足
于是,;例: 用伪码描述DDA算法,假设直线段的斜率满足: |m|1。
对于直线段的两个端点(x1,y1)和(x2,y2),假设y1y2。
int x,y=y1;
float xf=x1, minv=(x2-x1)/(y2-y1);
while(y=y2) {
x=Floor(xf+0.5);// Floor(x)表示取x的整数部分
setPixel(x,y);//在像素(x,
文档评论(0)