计算机图形学实验报告百度云盘,计算机图形学实验报告.docx

a7f4a3f590493a1e451dd952a488fd7c.gif 计算机图形学实验报告.docx

(10页)

b53fe4d3127e582bdd5d0b30652a2615.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

7.9 积分

计算机图形学实验报告 学校: 合肥工业大学 姓名: 学号: 班级: 实验二:直线的生成实验目的和要求理解直线生成的原理;掌握典型直线生成算法;掌握步处理、分析实验数据的能力;编程实现DDA算法、Bresenham中点算法;对于给定起点和终点的直线,分别调用DDA算法和Bresenham中点算法进行批量绘制,并记录两种算法的绘制时间;利用excel等数据分析软件,将试验结果编制成表格,并绘制折线图比较两种算法的性能。实验环境和工具• 开发环境:Visual C++ 6.0• 实验平台:Experiment_Frame_One(自制平台)实验结果程序代码:void CExperiment_Frame_OneView::DDA(int X0, int Y0, int X1, int Y1){//----------实现DDA算法------------// int dx,dy,epsl,k; float x,y,xIncre,yIncre; dx=X1-X0; dy=Y1-Y0; x = X0; y = Y0; if(abs(dx)>abs(dy)) //max分两种情况,|1/espl|=1 epsl=abs(dx); else epsl=abs(dy); xIncre=(float)dx/(float)epsl; yIncre=(float)dy/(float)epsl; for(k=0;k<=epsl;k++) { DrawPixel(int (x+0.5),(int)(y+0.5)); //光栅化+0.5后四舍五入 x+=xIncre; y+=yIncre; }}void CExperiment_Frame_OneView::Mid_Bresenham(int X0, int Y0, int X1, int Y1){ //-------请实现Mid_Bresenham算法-------///* int x,y,dx,dy,e; dx=X1-X0; dy=Y1-Y0; e=-dx; x=X0; y=Y0; while(x0){ y++; e-=2*dx; } }*/ int dx,dy,d,UpIncre,DownIncre,x,y; //只考虑0yscan) ++tmp; if(Vertices[(i+2)%VertexNum][1]>yscan) ++tmp; if(tmp%2==0) continue; } cross.push_back(x); } sort(cross.begin(),cross.end()); for(i=0;iyi+1,则计0个交点(不填色)。扫描线与多边形边界重合 (当要区分边界和边界内区域时需特殊处理),则计1个交点。 具体实现时,只需检查顶点的两条边的另外两个端点的y值。按这两个y值中大于交点y值的个数是0,1,2来决定实验总结: 计算机图形学是关于图形图像在计算机中存储,表达和显示的科学,设计了软硬件的许多方面。通过了8周的学习,大概了解了计算机图形学最基础的东西,知道了图形图像怎样在计算机中存储,有关的数据结构和怎样通过显示器显示出来。觉得很有意思,虽然只有两次上机实验,而且有现成的平台,但是通过了实验也了解了实验的算法表示的原理,只是简单的线和多边形的显示,但也很有意思,深刻形象的感受了计算机图形学的魅力。 关 键 词: 实验 报告 图形 计算机

4d91c43bfc72ca913299809b07b4968f.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值