Bresenham 算法 画直线(VC++)

来源:互联网 发布:慕清明知乎 编辑:程序博客网 时间:2024/05/20 13:09
void DrawLine(int x0,int y0,int x1,int y1,int color){                int x,y,yStep,t;double d,k;bool step;step=fabs(y1-y0)-fabs(x1-x0)?true:false;if(step){t=x0;x0=y0;y0=t;t=x1;x1=y1;y1=t;}if(x0>x1){t=x0;x0=x1;x1=t;t=y0;y0=y1;y1=t;}if(y0<y1){yStep=1;}else{yStep=-1;}k=fabs(double(y1-y0)/(x1-x0));d=0.5;y=y0;for(x=x0;x<=x1;x++){if(step)pDC->SetPixel(y,x,color);elsepDC->SetPixel(x,y,color);  if(d<0)  {  y+=yStep;  d+=1;  }}}

原创粉丝点击