1 / 4
文档名称:

Bresenham直线算法.doc

格式:doc   大小:34KB   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Bresenham直线算法.doc

上传人:changjinlai 2020/7/2 文件大小:34 KB

下载得到文件列表

Bresenham直线算法.doc

文档介绍

文档介绍:nidGIS专业实验报告(计算机图形学),绘制一条直线段姓名系别班级学号实验日期指导教师实验成绩实验目的及要求根据Bresenham画线算法,掌握绘制直线的程序设计方法。注意,不能使用语言库中的画线函数。理论基础中点Bresenham算法:在屏幕上建立平面直角坐标系,根据所给的坐标得出数学意义上的直线公式,然后在最大位移方向上依次选取最逼近直线的像素点,最终取所有像素点,得到的像素点尽可能的逼近直线,并填充颜色,显示出来。算法设计与分析源码如下:#include<Gl/>#include<Gl/>#include<Gl/>voidinit(void){glClearColor(,,,);gluOrtho2D(,,.0,);}intabs(intx){inty;if(x<=0)y=-x;elsey=x;returny;}voidset_pixel(floatx,floaty){glPointSize(10);glBegin(GL_POINTS);glVertex2f(x,y);glEnd();}voidvoidline(intx1,inty1,intx2,inty2){intdx;intdy;intx;inty;intp;intconst1;intconst2;intinc;inttmp;dx=x2-x1;dy=y2-y1;if(dx*dy>=0)inc=1;elseinc=-1;if(abs(dx)>abs(dy)){if(dx<0){tmp=x1;x1=x2;x2=tmp;tmp=y1;y1=y2;y2=tmp;dx=-dx;dy=-dy;}p=2*dy-dx;const1=2*dy;const2=2*(dy-dx);x=x1;y=y1;set_pixel(x,y);while(x<x2){x++;if(p<0)p+=const1;else{y+=inc;p+=const2;}}}else{if(dy<0){tmp=x1;x1=x2;x2=tmp;tmp=y1;y1=y2;y2=tmp;dx=-dx;dy=-dy;}p=2*dx-dy;const1=2*dx;const2=2*(dx-dy);x=x1;y=y1;set_pixel(x,y);while(y<y2){y++;if(p<0)p+=const1;else{x+=inc;p+=const2;}set_p