CG-4-1图形生成剖析.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CG-4-1图形生成剖析

算法步骤(第一象限内): ⒈ 画点(x1, y1) 计算:dx=x2?x1,dy=y2?y1,P1=2dy?dx,i=1; ⒉ 求直线的下一点位置: xi+1 = xi + 1;如果Pi0,则yi+1=yi+1,否则yi+1=yi; ⒊ 画点(xi+1, yi+1); ⒋ 求下一个误差Pi+1: 如果Pi0,则Pi+1=Pi+2dy?2dx,否则Pi+1=Pi+2dy; ⒌ i=i+1;如果idx+1则转步骤2;否则结束操作。 4.2.3 Bresenham直线算法 * 以上讨论的是 0≤m≤1的情况,即直线在第一象限内,斜率小于1的情况 当m1时,只需将算法中的x、y对换即可 当m0时,只需改变dx或dy的符号即可 4.2.3 Bresenham直线算法 * Bresenham算法的优点如下: ⒈ 不必计算直线的斜率,因此不做除法; ⒉ 不用浮点数,只用整数; ⒊ 只做整数加减运算和乘2运算,而乘2运算可以用移位操作实现。 因此,Bresenham算法的运算速度很快,并适于用硬件实现 4.2.3 Bresenham直线算法 * 例:采用Bresenham算法,画出端点为(0,0)和(10,4)的直线,计算出各像素点位置并画图。 【解】 i xi yi pi 1 0 0 -2 2 1 0 6 3 2 1 -6 4 3 1 2 5 4 2 -10 6 5 2 -2 7 6 2 6 8 7 3 -6 9 8 3 2 10 9 4 -10 11 10 4 Δy=4 ,Δx=10 p1=2Δy–Δx= -2 pi≥0时: xi+1=xi+1 yi+1=yi+1 pi+1=pi+2(Δy-Δx) pi<0时: xi+1=xi+1 yi+1=yi pi+1=pi+2Δy * 第四章 二维图形生成和变换技术 4.1 基本图形的点阵转换 4.2 直线点阵转换算法 4.3 圆的点阵转换算法 * 4.1 基本图形的点阵转换 点阵转换 生成一幅图形,就是要确定点阵图形中每一个像素点的颜色信息 在实际中,图形常常是用几何参数来描述的 根据图形的几何描述,确定像素点阵中哪些像素点正好在图形上或最靠近图形,并通过这些像素点发光来描绘出相应的几何图形,这一过程就称为图形的点阵转换 例如:一条直线 * 4.1 基本图形的点阵转换 点阵转换算法 点阵图形是由一个一个的像素点组成和显示的,但是我们通常绘图的时候,却不是一个一个点来描绘的,而是对具有某种联系的大量的点作统一的处理 例如:我们通常直接绘出的是一段直线、曲线、圆弧,或者是整个圆、椭圆等,再用这些基本的图形组成整幅图形 * 4.1 基本图形的点阵转换 在点阵图形中,要想直接绘出这些基本图形,而不通过一个一个像素点来描绘,就必须采用程序或算法来实现 研究这些基本图形的生成原理和算法是我们本章,也是我们本书的主要内容 * 4.1 基本图形的点阵转换 点阵转换算法的评价 转换后图形的精度 算法的时间复杂性 算法的空间复杂性 上述要求往往是相互冲突的,重要表现为算法的速度与所显示图形的质量 * 4.2 直线点阵转换算法 直线的点阵转换 当已知一条直线的两个端点坐标时,确定二维点阵图形中位于或靠近这条直线的像素点的位置,即确定最接近理论直线的像素点(坐标值) 这一过程也称为直线光栅化 * 4.2 直线点阵转换算法 直线点阵转换算法 水平、垂直线最精确,45°角的直线较笔直 接近水平、垂直的直线锯齿现象最严重 点阵图形的分辨率越高,锯齿现象越小,直线越直 有选择地用部分像素点表示比用所有涉及到的像素点表示更逼真 像素点应该沿直线段方向均匀分布,而不是x或y坐标轴方向均匀分布 * 4.2 直线点阵转换算法 直线光栅化 * 4.2 直线点阵转换算法 常用算法: 一般算法 增量DDA算法( Digital Differential Analyser) Bresenham算法 * 4.2.1 一般算法 已知条件: 直线的起点坐标为P0 (x0,y0),终点坐标为P1 (x1,y1); 则直线方程为:y=kx+b 其中:直线的斜率k=(y1-y0)/(x1-x0) 在y轴上的截距b=( y1x0-y0x1)/(x1-x0) * 4.2.1 一般算法 算法思路: 根据直线的两个端点坐标,求得k和b; 然后在(x1,x0)范围内对x均匀取整数; 利用直线方程y=kx+b进行运算,求得y值后再取整; 根据x、 y即可得到直线上所需的像素点坐标; 发光显示 * 4.2.1 一般算法 例:已知两端点(0,0),(5,2),画直线段 可求直线方程:y=0.4x x y round(

文档评论(0)

wyjy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档