- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章__基本图形生成
第3章 基本图形生成 目前我们使用的主要图形输出设备是光栅显示器,它是由离散像素组成的矩阵,在绘制具有连续性质的直线、曲线或区域等基本图形时,需要确定最佳逼近它们的像素,这个过程称为光栅化。对于一维图形,在不考虑线宽时,用一个像素宽的直、曲线来显示图形。光栅化是光栅图形学的基本问题,其算法的好坏对系统的效率有直接的关系。 图形生成(也称图形的扫描转换或图形的光栅化)的基本思想是:根据图形的数学/参数方程计算出最佳逼近图形的象素集合, 并以此像素集近似替代原来图形,在屏幕上显示。 3.1 直线的生成 数值微分法 DDA算法就是一个增量算法。 增量算法:在一个迭代算法中,如果每一步的x、y值是用前一步的值加上一个增量来获得,则称为增量算法。 例:画直线段p 0,0 --P1 5,2 x int y+0.5 y+0.5 0 0 0 1 0 0.4+0.5 2 1 0.8+0.5 3 1 1.2+0.5 4 2 1.6+0.5 5 2 2.0+0.5 注:网格点表示象素 DDA算法与基本算法相比,减少了浮点乘法,提高了效率。但是x与dx、y与dy用浮点数表示,每一步要进行四舍五入后取整,不利于硬件实现,因而效率仍有待提高。 思考:假设0 k ≤1 两个表达式有何不同? 作为最底层的光栅图形算法,在通常的CAD/图形系统中,会被大量应用,因此,哪怕节约一个加法或减法,也是很了不起的改进。 Bresenham画线算法 例:Line: P0 0, 0 , P1 5,2 x y d 0 0 -1 1 0 3 2 1 -3 3 1 1 4 2 -5 5 2 -1 作业: 写出k 1 时Bresenham算法的推导公式 上机作业 实现Bresenham生成直线算法 总结 直线绘制就是对理想的直线进行离散,用一些近似点来表示。 DDA算法思路的关键是沿着一个方向计算与扫描线的交点,根据交点坐标选择象素点。 Bresenham算法根据一个与斜率有关的判别式决定象素点的选取。 重点:理解Bresenham算法思想 3.2 圆的生成 3.2.1 圆的特性 3.2.2 Bresenham画圆算法 如图3.4所示,假设已知一个圆心在原点的圆上一点 x,y ,根据对称性可得另外七个8分圆上的对应点 y,x , y,–x , x, –y , –x, –y , –y, –x , –y, x , –x,y 。因此,只需讨论8分圆的生成算法。 另外,为了方便起见,我们只考虑中心在原点,半径为整数R的圆x2+y2 R2。对于中心不在原点的圆,可先通过平移变换,化为中心在原点的圆,再进行扫描转换,把所得的像素坐标加上一个位移量即得所求像素坐标。 y,x y,-x x,y x,-y -x,y -x,-y -y,-x -y,x 图3.4 圆的对称性 * 现在的计算机能够生成非常复杂的图形,但图形无论多么复杂,它都是由基本图形组合而成的。因此,学习基本图形的生成算法是掌握计算机图形学的基础。 本章主要讨论一些基本图形的生成原理,如直线、圆的生成问题,二维封闭图形的填充问题。 Visual C++的CDC图形程序库已提供了画线、画圆和填充等基本图形的绘制函数,它们实质上是按计算机图形标准并以C++的语法约定提供给用户使用的标准图形生成算法。因此,从实用的角度出发,用户只需完全按照C++的语法约定使用这些图形程序库,就没有必要学习基本图形的生成原理及算法。 那么,为什么还要学习基本图形生成原理及算法?? 第二,Visual C++虽然提供了许多绘图函数,但总有满足不了用户特殊绘图要求的时候。如果仅仅学会使用Visual C++的绘图函数,不掌握基本图形生成原理及算法,那么你就永远无法超越Visual C++的限制。 第一,基本图形生成原理及算法是计算机图形学的基本原理,如果不学习这些基本原理,那么以后还要涉及的其他计算机图形学原理就无从谈起; 目前我们使用的主要图形输出设备显示器和打印机本质上是一种画点设备,是由一定数量的网格状细小光点,使其某些像素亮,某些像素不亮来显示图形或文字的。 本章我们主要以光栅图形显示器为例讨论基本图形的生成原理及算法。 所谓基本图形生成原理是指在点阵输出设备的情况下,如何对一条斜的直线或弯曲的曲线尽可能快地输出其最接近理想的直线或曲线。 用一系列的象素点来逼近直线 线段生成时,在离散位置上对线段取样,并且按扫描线顺序,在每个取样位置上决定距线段最近的像素。 高分辨率 低分辨率 在计算机上画线一般都是给定两个坐标点 x1, y1 和 x2, y2 ,要求画出它们的
您可能关注的文档
最近下载
- 宫颈癌护理查房.pptx VIP
- 新人教版8年级上册物理全册教学课件(2024年秋季新版教材).pptx
- 雅马哈电子琴PSR-E233音色中英对照 (2).xls VIP
- 交通工程工程施工信号灯、标线及标牌工程施工方案.docx VIP
- 安全标志全套GB2894-2008中文.doc VIP
- 2025年秋统编版语文三年级上册全册教学课件(课标版).pptx
- 一种银镀层用水性防变色封闭剂、防变色膜及其制备方法.pdf VIP
- REFLUX819调压器产品样本.pdf VIP
- 《电力设备典型消防规程》(DL5027—2022).doc VIP
- 中职《税费核算与智能申报》课件 学习情境3 城市维护建设税及教育费附加核算与智能申报.pptx
文档评论(0)