计算机图形学--直线段生成绘制的实现算法

计算机图形学--直线段生成绘制的实现算法

ID:39504332

大小:60.50 KB

页数:4页

时间:2019-07-04

计算机图形学--直线段生成绘制的实现算法_第1页
计算机图形学--直线段生成绘制的实现算法_第2页
计算机图形学--直线段生成绘制的实现算法_第3页
计算机图形学--直线段生成绘制的实现算法_第4页
资源描述:

《计算机图形学--直线段生成绘制的实现算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验二直线段生成绘制的实现算法班级08信计二学号20080502075姓名石志涛分数一、实验目的和要求:1、掌握光栅图形显示基本原理。2、熟悉直线的生成算法,掌握直线的绘制。3、掌握几种常用的直线生成算法。4、利用VisualC++实现直线生成的DDA算法、Bresenham算法。二、实验内容:1、了解直线的生成原理,掌握几种基本的直线生成算法。2、编程实现DDA算法、Bresenham算法绘制直线段。3、分析对比两种算法的像素逼近效果和程序执行速度。4、输出要求:每种算法要分别在八个二分之一象限内画一条直线段。三、实验步骤:1、预习教材关于直线的生成

2、原理。2、仿照教材关于直线生成的DDA算法和Bresenham算法,使用VisualC++实现该算法。3、运行结果的调试。程序代码1.DDA算法:#include#includevoidlinedda(intx0,inty0,intx1,inty1,intcolor){intx,dy,dx,y;floatm;dx=x1-x0;dy=y1-y0;m=dy/dx;y=y0;for(x=x0;x<=x1;x++){putpixel(x,(int)(y+0.5),color);y+=m;}}main(){inta,b,

3、c,d,e;4intgraphdriver=DETECT;intgraphmode=0;initgraph(&graphdriver,&graphmode,"");cleardevice();a=0;b=0;c=200;d=300;e=RGB(0,255,0);linedda(a,b,c,d,e);getch();closegraph();}运行结果:2.Bresenham算法:#include#includevoidLine_Bresenham(intx1,inty1,intx2,inty2,intcolor

4、){intx=x1;inty=y1;intdx=abs(x2-x1);intdy=abs(y2-y1);ints1=x2>x1?1:-1;ints2=y2>y1?1:-1;4boolinterchange=false;if(dy>dx){inttemp=dx;dx=dy;dy=temp;interchange=true;}intp=2*dy-dx;for(inti=0;i=0){if(!interchange)y+=s2;elsex+=s1;p-=2*dx;}if(!interchan

5、ge)x+=s1;elsey+=s2;p+=2*dy;}}voidmain(){initgraph(640,480);Line_Bresenham(100,1,1,478,GREEN);Line_Bresenham(1,478,638,1,GREEN);getch();closegraph();}运行结果:4四、实验结果分析:1、DDA算法采用的是直线的点斜式计算公式2、Bresenham算法是通过选择与理想直线最近的像素来完成扫描转换的。通过该课程的学习使我熟练的掌握了利用计算机画直线的方法,在老师的教导下掌握了许多的计算机图形学知识,为以后利用计算

6、机画图形打下了基础。4

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。