dda c语言计算机图形学,计算机图形学 DDA算法中点画线算法Bresen
計算機圖形學 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);}}
總結
以上是生活随笔為你收集整理的dda c语言计算机图形学,计算机图形学 DDA算法中点画线算法Bresen的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: robotframework(12)修改
- 下一篇: linux系统配置脚本,Linux系统配