ImageVerifierCode 换一换
格式:DOC , 页数:33 ,大小:260.50KB ,
资源ID:9907692      下载积分:12 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9907692.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(计算机图形学课程设计任务书.doc)为本站上传会员【天****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

计算机图形学课程设计任务书.doc

1、 计算机图形学课程设计任务书 23 2020年4月19日 文档仅供参考,不当之处,请联系改正。 课程设计(论文)任务书 软 件 学 院 学  院   专  业  班 一、课程设计(论文)题目  区域填充算法演示系统 二、课程设计(论文)工作自 年 6 月 8 日起至 年 6 月 12 日止。 三、课程设计(论文) 地点:

2、 软 件 学 院 实 训 中 心 四、课程设计(论文)内容要求: 1.本课程设计的目的 计算机图形学课程设计是计算机图形学课程中的知识、技术和技能的一个综合应 用, 是培养图形软件开发能力的综合训练。经过课程设计,使学生更深入地理解和掌 握计算机图形学理论与相关算法,巩固课内所学的知识、技术和技能,进一步提高图 形软件开发的能力。为毕业设计和毕业后从事计算机绘图、计算机辅助设计、辅助教 学、辅助工程、图形处理等打下基础。 2.课程设计的任务及要求 1)课程设计任务: (1)能实现区域填充光栅化算法的原理性演示。(算法

3、过程的可视化及动画演示) (2)要求有算法参数输入窗口和算法的图形化结果显示窗口。人机交互必须友好。 (3)将象素网格表现出来,建立网格坐标系。 (4) 如果采用种子填充算法实现填充,用鼠标选择种子点(也能够经过参数输入窗口 输入种子),用表格的形式显示堆栈存储的象素,象素出栈或入栈的过程要显示出来。 关键是要将象素填充的顺序表现出来。 2)创新要求: 实现对多边形的填充 3)课程设计论文编写要求 (1)课程设计任务及要求 (2)设计思路--工作原理、功能规划 (3)详细设计---数据分析、算法思路、功能实现(含程序流程图、主要代码及注 释)、界面等。 (4)运行调

4、试与分析讨论---给出运行屏幕截图,分析运行结果,有何改进想法等。 (5)设计体会与小结---设计遇到的问题及解决办法,经过设计学到了哪些新知识, 巩固了哪些知识,有哪些提高。 (6)参考文献(必须按标准格式列出,可参考教材后面的参考文献格式) (7)报告按规定排版打印,要求装订平整,否则要求返工; (8)课设报告的装订顺序如下:封面---任务书---中文摘要---目录----正文---附录 (代码及相关图片) (9)严禁抄袭,如有发现,按不及格处理。 4)课程设计评分标准: (1)学习态度:10分; (2)系统设计:20分; (3)编程调试:20分; (4)回答问题

5、20分; (5)论文撰写:30分。 5)参考文献: (1)陆枫 何云峰. 计算机图形学基础(第2版)[M]. 电子工业出版社 (2)张曦煌 杜俊俐. 计算机图形学[M]. 北京邮电大学出版社 (3)孙家广. 计算机图形学[M]. 清华大学出版社. 6)课程设计进度安排 1.准备阶段(4学时):选择设计题目、了解设计目的要求、查阅相关资料 2.程序模块设计分析阶段(4学时):程序总体设计、详细设计 3.代码编写调试阶段(8学时):程序模块代码编写、调试、测试 4.撰写论文阶段(4学时):总结课程设计任务和设计内容,撰写课程设计论文 学生签名:

6、 年 6 月 8 日 课程设计(论文)评审意见 (1)学习态度(10分):优( )、良( )、中( )、一般( )、差( ); (2)系统设计(20分):优( )、良( )、中( )、一般( )、差( ); (3)编程调试(20分):优( )、良( )、中( )、一般( )、差( ); (4)回答问题(20分):优( )、良( )、中( )、一般( )、差( ); (5)论文撰写(30分):优( )、良( )、中( )、一般( )、差( ); 评阅人:     职称: 讲师 年 6 月 日

7、 中文摘要 [摘要] :图形一般由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成。从处理技术上来看,图形主要分为两类,一类是基于线条信息表示的,如工程图、等高线地图、曲面的线框图等,另一类是明暗图,也就是一般所说的真实感图形。计算机图形学一个主要的目的就是要利用计算机产生令人赏心悦目的真实感图形。为此,必须建立图形所描述的场景的几何表示,再用某种光照模型,计算在假想的光源、纹理、材质属性下的光照明效果。 [关键词] :计算机图形学、区域填充、扫描线算法 目 录 一、课程设计任务及要求 1 二、需求分析 2 三、设计思路 3 四、详细设计 4 五、运行

8、调试与分析讨论 5 六、设计体会与小结 6 七、参考文献 7 一、课程设计任务及要求 1)能实现区域填充光栅化算法的原理性演示。(算法过程的可视化及动画演示) 2)要求有算法参数输入窗口和算法的图形化结果显示窗口。人机交互必须友好。 3)将象素网络表现出来,建立网格坐标系。 4)如果采用种子填充算法实现填充,用鼠标选择种子点(也能够经过参数输入窗口输入点),用表格的形式显示堆栈存储的象素,象素出栈或入栈的过程要显示出来。关键是要将象素填充的顺序表现出来。 二、需求分析 在计算机中重现真实世界的场景叫做真实感绘制。真实感绘制的主要任务是模拟真实物体的物理属性,简单的说就是物

9、体的形状、光学性质、表面的纹理和粗糙程度,以及物体间的相对位置、遮挡关系等等。实时的真实感绘制已经成为当前真实感绘制的研究热点,而当前真实感图形实时绘制的两个热点问题则是物体网格模型的面片简化和基于图象的绘制(IBR Image Based Rendering)。网格模型的面片简化,就是指对网格面片表示的模型,在一定误差的精度范围内,删除点、边、面,从而简化所绘制场景的复杂层度,加快图形绘制速度。IBR完全摒弃传统的先建模,然后确定光源的绘制的方法。它直接从一系列已知的图象中生成未知视角的图象。这种方法省去了建立场景的几何模型和光照模型的过程,也不用进行如光线跟踪等极费时的计算。该方法特别适用

10、于野外极其复杂场景的生成和漫游。 主要任务是实现多边形区域扫描线填充的有序边表算法,设计相关的数据结构(如链表结构、结点结构等),并将实现的算法应用于任意多边形的填充,区域填充,指的是在输出平面的闭合区域内完整地填充某种颜色或图案。以下所述及的区域填充算法或相关程序,主要针对显示平面内的区域而言。 区域填充的问题一般分两大类,一是多边形填充;一是种子填充;种子填充在学生掌握了“栈”这一抽象数据类型的实现方法的前提下,比较容易完成。而边标志填充算法却是介于这两类之间,部分地具有它们的痕迹,算法思想巧妙,实现起来更容易。多边形填充有一定难度,我们主要对多边形的扫描线算法填充做一些探讨,具体将以

11、五角星为实例。 扫描线填充算法一般包括四个步骤:求交、排序、交点配对、区域填充。正确求得扫描线与区域填内外轮廓线的交点是算法成败的关键问题。另一方面,采用合适的数据结构又能够简化操作、提高算法的效率。本论文由于采用链表结构记录轮廓线和交点,无需焦点排序的过程,因而提高了算法效率。扫描线来源于光栅显示器的显示原理:对于屏幕上所有待显示像素的信息,将这些信息按从上到下、自左至右的方式显示。 扫描线多边形区域填充算法是按扫描线顺序,计算扫描线与多边形的相交区间,再用要求的颜色显示这些区间的象素,即完成填充工作。区间的端点能够经过计算扫描线与多边形边界线的交点获得。对于一条扫描线,多边形的填充过程

12、能够分为四个步骤: (1)求交:计算扫描线与多边形各边的交点; (2)排序:把所有交点按x值递增顺序排序; (3)配对:第一个与第二个,第三个与第四个等等;每对交点代表扫描线与多边形的一个相交区间; (4)填色:把相交区间内的象素置成多边形颜色; 三、总体设计 1) 分析多边形区域扫描线填充算法的原理,确定算法流程 ① 初始化:构造边表ET,置AET表为空; ② 将第一个不空的ET表中的边插入AET表; ③ 由AET表取出交点进行配对(奇偶)获得填充区间,依次对这些填充区间着色; ④ y=yi+1时

13、根据x=xi+1/k修改AET表所有结点中交点的x坐标。同时如果相应的ET表不空,则将其中的结点插入AET表,形成新的AET表; ⑤ AET表不空,则转(3),否则结束。 2) 编程实现 ① 首先确定多边形顶点和ET/AET表中结点的结构 ② 编写链表相关操作(如链表结点插入、删除和排序等) ③ 根据1)中的算法结合上述已有的链表操作函数实现多边形区域扫描线填充的主体功能 ④ 编写主函数,测试该算法 3)算法描述: void polyfill (多边形 polygon, 颜色 color) { for (各条扫描线i )   { 初始化新边表头指针NET [i];把

14、ymin = i 的边放进边表NET [i];   }    y = 最低扫描线号;    初始化活性边表AET为空;    for (各条扫描线i )     { 把新边表NET[i]中的边结点用插入排序法插入AET表,使之按x坐标递增顺序排列;       遍历AET表,把y max= i 的结点从AET表中删除,并把y max > i结点的x值递增D x;       若允许多边形的边自相交,则用冒泡排序法对AET表重新排序;       遍历AET表,把配对交点区间(左闭右开)上的象素(x, y),用drawpixel (x, y, color) 改写象素颜色值;   

15、   } } /* polyfill */ 四、详细设计 1.用扫描线算法实现五角星填充 以(50,0),(60,30),(90,30),(70,45),(80,90),(50,60),(20,90),(30,45),(10,30),(40,30)这十个点作为五角星的十个点,利用扫描线算法将这个五角星进行填充。 根据扫描线的算法步骤,可将其算法过程描述如下: 3.1.1画五角星图形 (1)五角星图形 Y 90              p8                     p6 80 

16、                                                          e7     e6  70                            p7                y=60 60               e8                 e5 50                                           y=45                 p9                   p5                                         

17、 40        e9                               e4                                                 y=30  30      p0   e0     p1          p3   e3     p4 20                                      e1 e2e2           y=10 10                                                                     0     10   

18、20   30   40   50 p2 60   70   80    90  x 图3.1 五角星图形 (2)五角星的边表 构造ET表算法描述如下: void CreatET(Edge *et[],struct pointtype p[]) /*根据顶点数组构造ET表*/ { int i,lasty,lastx,nextx,nexty,ymax,cy,cx; Edge *pe; for(i=0;i

19、上一点的坐标及下一点的坐标,考虑数组的首尾点。。。*/ if(0==i){ lasty=p[EDGEMAX-1].y; lastx=p[EDGEMAX-1].x; } else{ lasty=p[i-1].y; lastx=p[i-1].x; } if(EDGEMAX-1==i){ nexty=p[0].y; nextx=p[0].x;

20、 } else{ nexty=p[i+1].y; nextx=p[i+1].x; } 图3.2 五角星的边的分类表 (3)相对应活化边表 (a)y=0对应的活化边表 (b)y=3对应的活化边表 (c)y=6对应的活化边表 图3.3 活化边表 (4) 描述边算法的数据结构定义为: t

21、ypedef struct{ int ymax; float x,delta; struct Edge *nextEdge; }Edge; void CreatET(Edge *et[],struct pointtype p[]); /*根据顶点数组构造ET表*/ void EdgeInAel(Edge *ael,Edge *edge); /*ET表中某边edge插入至AEL表中,并排序,x相同时用下一点x+delta判断*/ void EdgeOutAel(Edge *ael,int y);

22、/*删除AEL中y=ymax的边,并同时修改每边的delta值*/ (5) 顶点交点的计数问题 (6)对AEL中的边两两配对,(1和2为一对,3和4为一对,……)配对算法描述如下: void EdgeDraw(Edge *ael,int y); /*按AEL中的1,2配对,3,4配对……然后x按规则去整后填充*/ (7)如果ET中的第y类非空,则将其中的结点插入AET表,形成新的AET表,算法描述如下: void EtInAel(Edge *et[],Edge *ael,int y); /*找出ET中对应Y非空的边而且

23、排序进入AEL活化边表*/ (8)实现五角星主要算法: void main() { int gd=DETECT,gm; int i,y,ymax; struct pointtype p[EDGEMAX]={{50,0},{60,30},{90,30},{70,45},{80,90},{50,60},{20,90},{30,45},{10,30},{40,30},{50,0}}; Edge *et[ETMAX]={0}; Edge *ael; ael->nextEdge=NULL; initgraph(&gd,&gm

24、""); CreatET(et,p); for(i=0;iymax){ ymax=p[i].y; } }/*确定ymax*/ while(y<=ymax){

25、 EtInAel(et,ael,y); EdgeDraw(ael,y); y++; EdgeOutAel(ael,y); } 填充算法如下: void EdgeDraw(Edge *ael,int y) /*按AEL中的1,2配对,3,4配对……然后x按规则去整后填充*/ { int counter=1; /*奇偶计数器*/ int color,maxcolor; Edge *pmove; float xlast,xcur; int ylast

26、ycur; maxcolor=getmaxcolor(); pmove=ael->nextEdge; while(pmove!=NULL){ if(counter%2==1){ xlast=pmove->x; } else{ /*每两次边画线一次并重新赋值开始*/ xcur=pmove->x; color=random(maxcolor); setcolor(color); line((in

27、t)xlast+1,y,(int)xcur,y); xlast=0; xcur=0; } counter++; pmove=pmove->nextEdge; } } 五、运行调试与分析讨论 算法运行结果如下:未填充颜色: 填充彩色如下: 六、 设计体会与小结 七、参考文献 [1] 作者1,作者2. 参考书籍名称[M]. 出版地:出版社名称,出版年限 1. 李桂清,李淘渊.扫描线种子填充的问题及改进[J].广西大学学报(自然科学版),1998;(9):207~212 2. 余正生,马立庄,彭群生.任意区域的边界扫描线转换[J].工程图学学报,1999;(1):72~77 3. 倪明田,吴良芝. 计算机图形学[M].北京大学出版社, . 4. 唐泽圣,周嘉玉,李新友. 计算机图形学基础[M]. 清华大学出版社, . 5. 张志龙,李吉成,沈振康.一种快速复杂连通区域扫描线填充算法[J].国防科技大学电子科学与工程学院。 .

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服