dda c语言计算机图形学,计算机图形学 DDA算法中点画线算法Bresen

41528d3028836879cd698677c3999917.gif计算机图形学 DDA算法中点画线算法Bresen

计算机图形学 DDA算法、中点画 线算法、 Bresen计算机图形学:DDA算法、中点画线算法、Bresenham算法画直线(c语言)2010-12-09 16:00这几个程序是我根据老师的课件编出来的,在这里跟大家分享一下DDA算法画直线:#include graphics.h#include math.h#include conio.h main()int driver=DETECT,mode;initgraph(&driver,&mode,““);setbkcolor(2);dda_line(250,200,100,120);getch();closegraph();dda_line(x1,y1,x2,y2)int x1,y1,x2,y2;{float increx,increy,x,y,length;int i;if(abs(x2-x1)abs(y2-y1))length=abs(x2-x1);else length=abs(y2-y1);increx=(x2-x1)/length;increy=(y2-y1)/length;x=x1;y=y1;for(i=1;i=length;i++){putpixel((int)(x+0.5),(int)(y+0.5),1);x=x+increx;y=y+increy;}}中点画线法:#include graphics.h#include math.h#include conio.h#include stdio.h void MidPoint_Line(int x0,int y0,int x1,int y1,int color);main(){int driver=DETECT,mode;int x0,y0,x1,y1,color;initgraph(&driver,&mode,““);setbkcolor(2);MidPoint_Line(0,0,200,200,1);getch();closegraph();}void MidPoint_Line(x0,y0,x1,y1,color)int x0,y0,x1,y1,color;{int a,b,delta1,delta2,d,x,y;a=y0-y1;b=x1-x0;d=2*a+b;delta1=2*a;delta2=2*(a+b);x=x0;y=y0;putpixel(x,y,color);while(x x1){if(d 0){x++;y++;d+=delta2;}else{x++;d+=delta1;}putpixel(x,y,color);}Bresenham算法:#include graphics.h#include math.h#include conio.h#include stdio.h void Bresenham_Line(int x0,int y0,int x1,int y1,int value);main(){int driver=DETECT,mode;int x0,y0,x1,y1,color;initgraph(&driver,&mode,““);setbkcolor(2);Bresenham_Line(0,0,200,200,1);getch();closegraph();}void Bresenham_Line(int x0,int y0,int x1,int y1,int value){int dx=abs(x0-x1),dy=abs(y0-y1);int d=2*dy-dx;int twody=2*dy,twodydx=2*(dy-dx);int x,y,xend;if(x0 x1){x=x1;y=y1;xend=x0;}else{x=x0;y=y0;xend=x1;}putpixel(x,y,value);while(x xend){x++;if(d 0)d+=twody;else{y++;d+=twodydx;}putpixel(x,y,value);}}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值