计算机图形学---直线的生成算法(共7页).doc
《计算机图形学---直线的生成算法(共7页).doc》由会员分享,可在线阅读,更多相关《计算机图形学---直线的生成算法(共7页).doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上实验二 直线段生成绘制的实现算法班级 08信计2班 学号姓名 张玉凤 分数 一、实验目的和要求:1、掌握光栅图形显示基本原理2、熟悉直线的生成算法,掌握直线的绘制3、初步了解Tc下画图基本程序结构;4、初步了解DDA画线算法及Bresenham算法的思想和基本方法二、实验主要思想:1、DDA算法思想: 数值微分法即DDA法,这是一种基于直线的微分方程来生成直线的方法。选定和中较大者作为步进方向,取该方向上的为一个像素单位长,即x每次递增一个像素,然后利用公式计算出相应的y值,把每次计算出的取整后顺序输出到显示器,则得到光栅后的直线。2、中点直线算法思想: 假定直线斜率
2、k在01之间(k的其它取值可以类似处理),当前象素点为(xp,yp),则下一个象素点有两种可选择点P1(xp+1,yp)或P2(xp+1,yp+1)。若P1与P2的中点(xp+1,yp+0.5)称为M,Q为理想直线与x=xp+1垂线的交点。当M在Q的下方时,则取P2应为下一个象素点;当M在Q的上方时,则取P1为下一个象素点。这就是中点画线法的基本原理。三、实验内容及步骤1、dda画线算法画一段直线实验代码:#includestdio.h#includegraphics.hvoid DDALine(int x1,int y1, int x2,int y2) double dx, dy,e,x,y
3、; int i; dx=x2-x1; dy=y2-y1; e=(fabs(dx)fabs(dy)? fabs(dx):fabs(dy); dx/=e; dy/=e; x=x1; y=y1; for(i=1;i=e;i+) putpixel(int)(x+0.5),(int)(y+0.5),GREEN); x+=dx; y+=dy; void main() int driver=VGA; int mode=VGAHI; initgraph(&driver,&mode,); DDALine(100,150,250,300 ); getch(); closegraph();运行结果: 2. 用Bre
4、senham画线算法画直线,并完善算法功能,使之适应更广实验代码:#include#includevoid Bresenhamline(int x1,int y1,int x2,int y2) int x,y,dx,dy,p; x=x1; y=y1; dx=x2-x1; dy=y2-y1; p=2*dy-dx; for(;x=0) y+; p+=2*(dy-dx); else p+=2*dy; main() int driver=VGA; int mode=VGAHI; initgraph(&driver,&mode,); Bresenhamline(50,150,200,250); getc
5、h(); closegraph();运行结果:3.、对比Bresenham算法、DDA算法、中点算法三种算法的像素逼近效果和程序执行速度 三两种算法的像素逼近效果和程序执行速度。实验代码:#include #include #include #include #include #include void DrawZb();void BLine(int, int, int, int);void DDALine(int, int, int, int);void MidLine(int, int, int, int);void main() int i; char str20; long oldti
6、me, newtime,time; int gd = VGA, gm = VGAHI; initgraph(&gd, &gm, D:TCTCPPBGI); DrawZb(); outtextxy(10,10,Welcome to this program!); settextstyle(2,0,0); outtextxy(10,420,Name : Lineswork 1.0); outtextxy(10,430,Information : Computer Graphics Work - lines); outtextxy(10,440,CopyRight : (C) Lewsn 2010)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 图形学 直线 生成 算法
限制150内