- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 基本图形生成 计算机图形学实用技术 知识(第3版)课件.ppt
第3章 基本图形生成 ; Visual C++的CDC图形程序库已提供了画线、画圆和椭圆、填充等基本图形的绘制函数,它们实质上是按计算机图形标准并以C++的语法约定提供给用户使用的标准图形生成算法。因此,从实用的角度出发,用户只需完全按照C++的语法约定使用这些图形程序库,就没有必要学习基本图形的生成原理及算法。; 第二,Visual C++虽然提供了许多绘图函数,但总有满足不了用户特殊绘图要求的时候。如果仅仅学会使用Visual C++的绘图函数,不掌握基本图形生成原理及算法,那么你就永远无法超越Visual C++的限制。 ; 众所周知,计算机内部存储和使用的数据是二进制数(由0和1组成)。目前我们使用的主要图形输出设备显示器(一般为光栅图形显示器)和打印机(点阵、喷墨、激光打印机)本质上是一种画点设备,是由一定数量的网格状细小光点(光点称为像素,光点的数量称为分辨率),使其某些像素亮(二进值为1),某些像素不亮(二进值为0)来显示图形或文字的。因此,所谓的基本图形生成原理是指在点阵输出设备的情况下,如何对一条斜的直线或弯曲的曲线尽可能快地输出其最接近理想的直线或曲线,即如何以最快的速度确定最佳逼近于图形的像素集,如图3-1所示 ;图3-1 直线与曲线扫描转换 ;解析几何问题;解1):给定线段的两个端点(x1, y1)和(x2, y2), 可以计算出斜率可k和截距如下: k =△y/△x = (y2 – y1) / (x2 – x1) b = y1 – k·x1 (3-2) ;解2):假设直线的起点和终点分别为(x1,y1)和(x2,y2),利用1)的端点的斜率表示及其方程,非常方便地求的一组参数: a = y1 - y2,b = x2 - x1,c = x1y2 - x2y1。;直线生成算法主要思想; 针对上述式(3-3)中P1或P2点的选择,我们会有不同的方法。这就是本章将要叙述的数值微分法、中点画线法以及Bresenham画线算法。 为此,只需让x从起点到终点每次增加(或减少)1,首先,我们可以用(3.1.1)式计算对应的y值,再用putpixel (x, int (y+0.5), color)函数输出该像素的颜色值即可。这里用int来取整是因为像素的坐标值都是整数的。但是,用这种方法画线效率太低,这是因为每步都需要一个浮点乘法运算和一个四舍???入运算。;3.1.1 数值微分法 ; 对于具有斜率绝对值|k|1的线段,可以让x从起点到终点变化,每步递增(或递减)1,即令△x =±1,则△y =±k。若前一次的直线上像素点坐标为 (xi,yi),这一次的直线上像素点坐标为 (xi+1,yi+1),则xi+1 = xi±1,yi+1 = yi±k。随后用putpixel 函数输出该像素的颜色值即可。见图3-4。;图3-4 数值微分法示意图 ; 上述采用的增量计算方法称为数值微分算法(Digital Differential Analyzer简称DDA)。以下是用数值微分算法(DDA)生成直线(斜率在0~l)的C语言描述。;3.1.2 中点画线法 ;3.1.2 中点画线的改进算法 ; 下面来讨论中点画线法的具体实现。; 构造判别式 d=F(M)=F(xk+1, yk+0.5)=a(xk+1)+b(yk+0.5)+c; 由于d是xk和yk的线性函数,可采用增量计算,以便提高运算效率。; 再看d的初始值。直线的第一个像素为左端点(x1, y1) ,所以相应的判别式值为 d0 = F(x1+1, y1+0.5)=a(x1+1)+b(y1+0.5)+c = (ax1+by1+c)+a+0.5b = F(x1,y1)+a+0.5b 由于(x1, y1)在直线上,故F (x1, y1) = 0。因此,d的初始值为d0 = a+0.5b。; void MPLine (int x1, int y1, int x2, int y2, int color) { int x, y, a, b, d , d1, d2; a = y1 – y2; b = x2 – x1; y = y1; d = 2 * a + b; dl = 2 * a; d2 = 2 *(a + b); for(x=x1;x=x2;x++) { putpixel (x, y, color); i
您可能关注的文档
- 第3,4章 电路交换技术 知识及接口电路 现代交换技术 知识 .ppt
- 第3-1章-几何公差《互换性与测量技术 知识基础案例教程》课件.ppt
- 第3-2章-几何公差 《互换性与测量技术 知识基础案例教程》课件.ppt
- 第3.1章 工程建设项目招投标 项目相关管理 .ppt
- 第3.2章 建筑工程施工项目合同相关管理 项目相关管理 .ppt
- 第3.3章 节 发电厂主系统 .ppt
- 第3.4章 节 发电厂主系统 .ppt
- 第3.4节 细胞衰老和调亡 癌变 黄伟坚 教程文件.ppt
- 第30章 节 肾上腺皮质激素类药物-七年制 .ppt
- 第36-37章 节 主要致病性真菌课件.ppt
- 第3章 多址技术 知识 卫星通信 .ppt
- 第3章 安全文化 安全相关管理学 .ppt
- 第3章 数据处理与人机交互程序设计 《计算机控制技术 知识(第2版)》课件.ppt
- 第3章 汽车维护保养操作技术 知识之二.ppt
- 第3章 测量技术 知识概述 《测控技术 知识与仪器专业导论》课件.ppt
- 第3章 电容式传感器 传感器技术 知识及应用 课件.ppt
- 第3章 电阻式传感器 《传感器与检测技术 知识(第2版)》课件.ppt
- 第3章 直流变换电路 工学硕士电力电子技术 知识课件.ppt
- 第3章 组织沟通 相关管理沟通.ppt
- 第3章 网络设备管理 网络维护与安全技术 知识教程与实训电子教案.ppt
最近下载
- 房产税城镇土地使用税政策讲解.pdf VIP
- 《弟子规正版全文-带拼音-完善打印版》.docx VIP
- 新大学日语阅读与写作1东娜练习答案及译文.pptx
- 第19课 法国大革命和拿破仑帝国 课件(共33张PPT).pptx VIP
- 施工现场节假日前安全检查表.doc VIP
- 500kV龙昌Ⅰ、Ⅱ号线直线塔绝缘子单串改双串施工方案.pdf VIP
- 结构优化的群体智能优化算法研究.pdf VIP
- 新视野大学英语(第四版)读写教程1(思政智慧版)课件 B1U1 Section A Fresh start.pptx VIP
- 北京-407EV-标准版-BJ5030XXYVRRC-BEV-407EV纯电动汽车产品使用说明书.pdf VIP
- GB50666混凝土结构工程施工规范.pdf VIP
文档评论(0)