




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机图形学实验报告姓名:谢云飞学号:20112497班级: 计算机科学与技术11-2班实验地点:逸夫楼507实验时间:2014.03实验1直线的生成1实验目的和要求理解直线生成的原理;掌握典型直线生成算法;掌握步处理、分析 实验数据的能力;编程实现DDA算法、Bresenham中点算法;对于给定起点和终点的 直线,分别调用DDA算法和Bresenham中点算法进行批量绘制,并记 录两种算法的绘制时间;利用excel等数据分析软件,将试验结果编 制成表格,并绘制折线图比较两种算法的性能。2实验环境和工具开发环境:Visual C+ 6.0实验平台:Experiment_Frame_One (自
2、制平台)。本实验提供名为Experiment_Frame_One 的平台,该平台提供基本 绘制、设置、输入功能,学生在此基础上实现DDA算法和Mid_Bresenham 算法,并进行分析。平台界面:如错误!未找到引用源。所示设置:通过view-setting 菜单进入,如错误!未找到引用源。所示输入:通过view-input菜单进入.如错误!未找到引用源。所示 实现算法:DDA算法:void CExperiment_Frame_OneView:DDA(int X0, int Y0, int X1, int Y1)Mid_Bresenham法:voidCExperiment_Frame_OneV
3、iew:Mid_Bresenham(intX0, int Y0, int X1,int Y1)3 实验结果3.1 程序流程图) DDA 算 法 流 程 图 :开 始定 义 两 点 坐 标 差 dx , dy , 以 及 epsl , 计 数 k=0 , 描 绘 点 坐 标 x,y , x 增 量 xIncre , y 增 量 yIncreJ输 入 两 点 坐 标 x1,y1,x0,y0dx=x1-x0,dy=y1-y0;反之若 |dx|dy|epsl=|dx|epsl=|dy|J.JJxIncre=dx/epsl; yIncre=dy/epslJ填 充 ( 强制 整 形 )(x+0.5,y+0
4、.5); TOC o 1-5 h z J横坐 标x+xIncre;纵坐 标y+yIncre;JT若 kx1x=x1;x1=x0;x0=x;x=x0;反之Y=y1;y1=y0;y0=y;y=y0;坐 标 差 dx=x1-x0;dy=y1-y0;判 断 值 d=dx-2*dy;UpIncre=2*dx-2*dy;DownIncre=-2*dy;填 充 点 (x,y) , 且 x=x+1; J J J TOC o 1-5 h z JJT若 d0反 之y=y+1, 且 d=d+UpIncre d=d+DownIncreJ.JTJ若 xabs(dy) epsl=abs(dx);else epsl=abs
5、(dy);xIncre=(float)dx/(float)epsl;yIncre=(float)dy/(float)epsl;for(k=0;kX1)x=X1;X1=X0;X0=x;y=Y1;Y1=Y0;Y0=y;x=X0;y=Y0;dx=X1-X0;dy=Y1-Y0;d=dx-2*dy;UpIncre=2*dx-2*dy;DownIncre=-2*dy;while(xX1)DrawPixel(x,y);x+;if(dLI JJLL LU J 1 LLJ1 LUJMT,t r r iH i rm i0r Lir / t r ,TrrmTrmiirr Lr i r r lit w t f lif
6、 iy OLin t rm i v r n1,t*,、t rmt y 产尸1,)中,i /,frPR itLij j I LLU 5 a CijJk C u jjji CCu3 I Cuj ICCij j HCijjji i-4Lir r t l ir inLIE r T r Lir 11IT W 卜/ W k |睢 41 0看 4J U. U E-l-J -a X ILLU J 1 L UJ JI LLiJJ JL L UJ 1 L 工口J jkq J 4 I. Ite-IJ JWl X、JI J 4- L H JEE困况88凄%建胪(重戚I gum”露口 “mmw ! Jll J 上事 J
7、RJ d J J Ial i 遇 h JIL.U J 鼻Ui ui Jle ri,r f r er n t r , LUJ J J WJ L I J X& i_ -iJ J.- I- b- l-l T 4X R- Li-ii J x ITT |I b| r rrn / 7 rrm r r fmi t t r (Tit、nr rrTi r rc -i t IC035CCODCi:O3X U IUIU J J.t-i t r rij-1 -i tL Y-J L Ll_i I- IT T rrmi r iTsmL JI- -Ir iri-1 r匚6 E 皿? X KQ2 X XCICjCCiZCCC
8、I CCCj a iCiiJ l-l - A L. ii-l -I-I J- iU UM-I J J. l1 ,餐艇 hM 4 *lf,n * f m t 尸产,r r Fir - fHE匚二口 ? X C ?AJ J. LILJ J A L 33 K f tR “由i ctdj itoo 31 COD J K c 口第工 trnii 2笛 - 1 1 . A L.一 X L UIUJ1 -I X J IU X IL I-II J JL J J I上LI JI L iL. UI-I -I J. L JI J皆l寸 ITLIF r E 口其 LI_1 k 4-1J J p-l-l-il FEF
9、1 rc COj LUIJId 1i-a f PLf-q 产rmj: n_ L i-J _i 上 L _ -1 J- il 6 J T - -4- KT-IT 4- It rm i t rrm r r nr a- r an it r ram r r XCCij jiLtijSKi 工 J J LJJL J L. JJ J. L e ku * 恒 t ir rn n t r m -n t r KCGCJ3CW3KC JLLI_JILLJLIL Ji l L iJ j dL L bid ji 上 *,I- KT T K IT T + 产、,vr 产i,r f ,,7广昌,FFLir -i t r
10、ir in r tm r r riruiuji -i.EFI -1ht rli-it t rinCO?T:rr.:i4/4 HlH 卜h RI * t t r im t t r tri -t -i r r m - t r li-i r JICCD3XCCIJ3ICCOICOD3 JLL*JAW,W J J. 事J 、-I 一二(- J 4 L JI- JiCiCCQUCCCmLil-l-fll J ,K.a_1 1 J_ ILLE,w pfit,寸 kip 解 rir “ r门,t pli, Fi-i rrrfi-iT rrmrrrimv rraii t(mI CCaj 5 / lS-5j J
11、CC CQ j Z CCG5 工(匚ill i_l i_K_ i-i j 一 J,4 h. Li-J _i x L上 Lii_l_e J l-HIT 4 l-B-n-l vTuT + I- l-IT 4- I-B-4-I-I * bl-IT ruTi r rr im t rrm r r rmi t rri-ii t mm lci rrm i t rriTt r r m t rirnm trit r le rrrii X CCC 金L1 l-l-I r 4 c C*J )3卜 V-I-IT rrmi LC1*j L 1 l_ i-i- i. l 4 I-4 I 44卜 TTT + + isrrm
12、iTrmrir irirriiiTcrri-iirrlCCj X lCO j X kH 1 修 TLLLrFLLLfTirJU L L Jl L L,儿L LL7ULI JL 运行结果分析DDA 算法基本上没有什么问题,Mid_Bresenham 算法在网 格尺寸比较大时误差较大,通过改变网格尺寸大小即能较为精确地 描绘出所绘直线。总之在误差允许的范围类,实验结果令人满意。4思考题(可选)如何测试比较算法的性能?提示1:因为绘制1条直线时间很短,所以需要绘制大量直线 才能比较它们之间的性能;提示2: drawpixel 需要耗费时间,但它的时间性能和直线绘制 算法无关,因此在比较不同算法性能时
13、,应该屏蔽它的影响, 如何屏蔽?5实验心得通过此次实验,我对典型的直线绘制算法DDA算法、Bresenham 中点算法有了进一步的了解与掌握。由于第一次做图形学的相关实验, 陌生感还是有的,对平台也不太掌握,所以一开始很难入门,但在老 师的帮助和同学的相互讨论下,结果还是可观的。两个基本算法都得 以实现。希望随着学习的加深,后续的实验能够做的更好。实验2多边形扫描转换算法1实验目的和要求理解多边形扫描转换的原理;掌握典型多边形扫描转换算法;掌握 步处理、分析实验数据的能力;编程实现基本X-扫描线转换算法(必做);编程实现有效边表转换算法(选做)。2实验环境和工具本试验提供自带实验平台开发环境:
14、Visual C+ 6.0本实验提供名为Polygon_Conversion 的平台,该平台提供基本绘制、 设置、输入功能,学生在此基础上实现X-扫描线算法和有效边表转换 算法。多边形输入:用户按【功能】 【输入多边形】菜单开始输入多边形;单击鼠标左键输入多边形顶点;点击鼠标右键结束多边形输入,并将最后一个顶点和第一个顶 点进行连接;参数设置:用户按 功能】 【设置启动设置对话框设置内容:填充色是否填充多边形选择转换算法实现扫描转换算法X- 扫 描 线 转 换 算 法 :void CPolygon_ConversionView:X_Scan_Line_Conersion(int Vertice
15、s2, int VertexNum) 有效边表转换算法:void CPolygon_ConversionView:Active_Edge_Table_Conersion(int Vertices2, int VertexNum)3 实验结果3.1 程序流程图X- 扫 描 线 转 换 算 法 :开 始(若构点小于3个f结束)确定多边形所占有的最大扫描线,得 到 多 边 形 顶 点 的 最 小 和 最 大 y 值 (ymin 和 ymax)从ys=ymin 开 始 扫 描 , 且 计 算 每 条 边 的 方 程 式J J记录ys与多边形各边交点T(判 断 并 取 舍 交 点 :顶 点 的 两 条
16、边 的 另 外 两 个 端 点 的 y1,y2 的 值 比 ys 大 的 个 数 为 0,1,2,则 取 交 点 对 应 个 数 为 0,1,2;)取完交点横坐标后排序交点横坐标x数组,并配对(1 , 2) ( 3, 4)T T填充配对区间若 扫 描 线 ys=ymax(结 束 )3.2 程序代码void CPolygon_ConversionView:X_Scan_Line_Conersion(intVertices2, int VertexNum)int ymin,ymax,x10,i,j,n=0,x1,x2,y1,y2,x0,ys;ymax=0 xffffffff;ymin=0 x7ff
17、fffff;if(VertexNum=3)return;for(i=0;iVertexNum;+i) if(Verticesi1ymax) ymax=Verticesi1;for(ys=ymin;ys=ymax;ys+)n=0;for(j=0;jVertexNum;+j)x1=Verticesj0;y1=Verticesj1;x2=Vertices(j+1)%VertexNum0;y2=Vertices(j+1)%VertexNum1;if(y1=y2) continue ;if(ysmax(y1,y2)continue;x0=int(ys-y1)*(x2-x1)/(y2-y1)+x1+0.5
18、);if(ys=y1)continue;if(ys=y2)int tmp=0;if(yiys)+tmp;if(Vertices(j+2)%VertexNum1ys)+tmp;if(tmp%2=0) continue;xn=x0;n+;sort(x,x+n);/ 排序for(i=0;in;i+=2)/填充for(j=xi;j= nodesk&t 1)value=(Divide(t-nodesk),(nodesk+m-1-nodesk)*BKM(t,k,m-1,no des)+Divide(nodesk+m-t),(nodesk+m-nodesk+1)*BKM(t,k+1,m-1 ,nodes);return value;生 成 曲 线 的 节 点 矢 量 :bool CFreeform_CurveView:Create_Nodes_Vector(int n,int m,int SplineType, float nodes)switch(SplineType) case 0: / 均 匀 B 样 条 曲 线/ 添 加 代 码 for(int i=0;i=n+m;i+) nodesi=i;break;case 1: / 开 放 均 匀 B 样 条 曲 线/添加代码int i=0;for(;im;i+)nodesi=0;for(;i=n;i+)nodesi=i-m+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中音乐课堂多声部合唱教学策略与音乐教育改革研究论文
- 校本课程开发中的课程内容设计论文
- 绘画课程对学生视觉思维的影响论文
- 基于虚拟现实技术的初中地理教学情境创设与教学效果评价论文
- 艾伯森财务管理制度
- 苗圃地员工管理制度
- 茶牌坊人员管理制度
- 融资合同:流动资金贷款合同
- 评估指标体系和评估机制构建支撑工作竞争性磋商文件
- 财政学 期末考试复习重点总结
- 小学生玩手机危害课件
- 2025年中国石油集团招聘笔试参考题库含答案解析
- 数字金融发展与跨境贸易人民币结算
- 智能制造能力成熟度模型(-CMMM-)介绍及评估方法分享
- 子宫腺肌病三级管理专家共识解读
- 钢材采销方案
- 上海市2025年中考模拟初三英语试卷试题及答案
- 长租公寓管理制度
- 华东理工大学《药剂学》2023-2024学年第一学期期末试卷
- 第四单元《遵守法律规范》测试卷-高二思想政治课《职业道德与法治》附答案
- 保安保洁物业服务招投标书范本
评论
0/150
提交评论