网站大量收购独家精品文档,联系QQ:2885784924

《线上线下混合式计算机图形学基础实验教程》课件_第3章.pptx

《线上线下混合式计算机图形学基础实验教程》课件_第3章.pptx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第3章图元扫描转换;

3.1实验内容简述和实验目标

;

(3)复述DDA、中点、Bresenham算法流程(布鲁姆知识模型:记忆);

(4)推导DDA、中点、Bresenham算法绘制二次曲线的递推公式,并能够算法化(布鲁姆知识模型:理解和应用);

(5)基于OpenGL,采用中点、Bresenham算法编程绘制二次曲线(布鲁姆知识模型:应用);

(6)检查并发现图元光栅化绘制效果存在的问题,判断原因,找出对策并改善(布鲁姆知识模型:应用、分析、评价)。

;

3.2扫描转换直线段(DDA)

;

对应算法步骤为:

(1)输入直线段的两端点p0(x0,y0)和p1(x1,y1)。

(2)计算公式(3.1)中的初始值k。

(3)令直线段上的点为(xf,yf),初始为(x0,y0)。

(4)当xf=x1时,迭代以下两步骤,否则结束

①将(xf,yf)取整为(xi,yi),并进行绘制。

②计算直线段上的下一点,即xf=xf+1,并根据公式(3.1)计算下一点的yf。

;

1.关键函数代码实现

;

2.案例效果

用DDA方法绘制一条直线段,直线段的两端点如图3-1(a)所示,坐标分别为(-200,-200)和(200,200),最终效果如图3-1(b)所示。

;

;

3.3基于Bresenham算法绘制直线段

;

为此,当di≥0时,说明当前直线段的下一实际交点(xi+1,yi+1)离(xi+1,yi,r+1)更近,即yi+1,r更适合为yi,r+1;否则,yi+1,r更适合取值yi,r。同时,判别式的递推公式为di+1=yi+2–yi+1,r–0.5=yi+1+k–yi+1,r–0.5,也取决于yi+1,r的取值,如公式(3.3)所示。此处,k为当前直线段的斜率(dy÷dx),为此,di的初始值为k–0.5。

;

;

为了提高算法的效率,对上述公式实施整数计算。为此,对判别式乘以2?×?dx,此时公式(3.3)更新为公式(3.4),且初始di为2×dy–dx。

(3.4)

;

对应算法步骤如下:

(1)输入直线的两端点p0(x0,y0)和p1(x1,y1)。

(2)计算初始值dy,dx,d。

(3)绘制点(xf,yf),初始值为(x0,y0)。

(4)判断d的符号。若d=0,则下一个(x,y)更新为(x+1,y+1)??同时将d更新为d?+?2?×?(dy-dx);否则,将下一个(x,y)更新为(x+1,y),d更新为d?+?2?×?dy。

(5)当xfx1时,迭代步骤(3)和(4)。否则结束。

;

1.关键函数代码实现

;

2.案例效果

用Bresenham算法绘制一条直线段,直线段的两端点如图3-2(a)所示,坐标分别为(0,0)和(100,100),最终效果如图3-2(b)所示。

;

;

3.4基于Bresenham算法绘制圆

;

1.关键函数代码实现

;

;

2.案例效果

用Bresenham算法绘制一个圆心在(0,0)、半径为200的圆,最终效果如图3-3所示。

;

3.5课外拓展性实验

;

文档评论(0)

酱酱 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档