1、利用 Bresenham 画线算法编程绘一条端点为 p0(o.o)和 p1(5.2)的直线 求:原程序实际现的基本可执行文件#include #include void bresenhamline(int x0,int y0,int x1,int y1,int color); main() int x01,x02,y01,y02; int gdriver, gmode, i; gdriver=DETECT; registerbgidriver(EGAVGA_driver); initgraph( printf(“input the start coordinate of the line:n“
2、); scanf(“%d%d“, printf(“input the end coordinate of the line:n“); scanf(“%d%d“, bresenhamline(x01,y01,x02,y02,2); getch(); closegraph(); void bresenhamline(int x0,int y0,int x1,int y1,int color) int x,y,dx,dy,e,i,a,b; x=x0; y=y0; if(xx1x0=x1;x1=a;b=y0;y0=y1;y1=b;x=x0;y=y0; if(xx1 e=e-2*dx; while(xy1) dx=x1-x0; dy=y1-y0; e=-dx; for(i=0;i=0) y=y-1; e=e-2*dx; while(x=x1) if(yy1) putpixel(x,y-,color); 此程序为画任意斜率直线,输入任意两点坐标,可显示相应直线。 斜率存在情况使用 bresenham 算法,无斜率情况下,采用特殊算法。其中斜率存在情况又分为斜率大于 1 和小于 1 情况。 此外,也解决了实际输入两点坐标时的随意性所带来的算法缺陷。