计算机图形学实验解说.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机图形学 实验报告 姓 名: 谢云飞 学 号: 班 级: 计算机科学与技术11-2班 实验地点: 逸夫楼507 实验时间: 2014.03 直线的生成 实验目的和要求 理解直线生成的原理;掌握典型直线生成算法;掌握步处理、分析实验数据的能力; 编程实现DDA算法、Bresenham中点算法;对于给定起点和终点的直线,分别调用DDA算法和Bresenham中点算法进行批量绘制,并记录两种算法的绘制时间;利用excel等数据分析软件,将试验结果编制成表格,并绘制折线图比较两种算法的性能。 实验环境和工具 开发环境:Visual C++ 6.0 实验平台:Experiment_Frame_One(自制平台)。 本实验提供名为 Experiment_Frame_One的平台,该平台提供基本绘制、设置、输入功能,学生在此基础上实现DDA算法和Mid_Bresenham算法,并进行分析。 平台界面:如图 21所示 设 置:通过view-setting菜单进入,如图 22所示 输 入:通过view-input…菜单进入.如图 23所示 实现算法: DDA算法:void CExperiment_Frame_OneView::DDA(int X0, int Y0, int X1, int Y1) Mid_Bresenham法:void CExperiment_Frame_OneView::Mid_Bresenham(int X0, int Y0, int X1, int Y1) 实验结果 程序流程图 1)DDA算法流程图: 开始 定义两点坐标差dx,dy,以及epsl,计数k=0,描绘点坐标x,y,x增量xIncre,y增量yIncre ↓ 输入两点坐标x1,y1,x0,y0 ↓ dx=x1-x0,dy=y1-y0; _________↓_________ ↓ ↓ 若|dx||dy| 反之 epsl=|dx| epsl=|dy| ↓________...________↓ ↓ xIncre=dx/epsl; yIncre=dy/epsl ↓ 填充(强制整形)(x+0.5,y+0.5); ↓ ←←← ← 横坐标x+xIncre; 纵坐标y+yIncre; ↓ ↑ 若k=epsl →→→ k++ ↓ 结束 Mid_Bresenham算法流程图 开始 ↓ 定义整形dx,dy,判断值d,以及UpIncre,DownIncre,填充点x,y ↓ 输入x0,y0,x1,y1 ______↓______ ↓ ↓ 若x0x1 反之 x=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; ______↓______ ← ← ← ↓ ↓ ↑ 若d0 反之 y=y+1,且d=d+UpIncre d=d+DownIncre ↓______.______↓ ↑↑ ↓ 若x=x1 → → → ↑ ↓ 结束 程序代码 void CExperiment_Frame_OneView::DDA(int X0, in

文档评论(0)

武神赵子龙 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档