upsidedown

breshenhams alogorithm

Jan 30th, 2013
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.87 KB | None | 0 0
  1. void ba(float x1,float y1,float x2,float y2,CDC* pdc,COLORREF color)
  2. {
  3.     float dx,dy,q,d,p0/*,m*/,l,m,p1,xk,yk,k=0,pk;
  4.     dx=x2-x1;
  5.     dy=y2-y1;
  6.     /*m=dy/dx;*/
  7.     q=2*dy;
  8.     d=q-(2*dx);
  9.     p0=q-dx;
  10.     pk=p0;
  11.     xk=x1;
  12.     yk=y1;
  13.     if(x1>x2)
  14.     {
  15.         l=x1;
  16.     }
  17.     else
  18.     {
  19.         l=x2;
  20.     }
  21.     if(y1>y2)
  22.     {
  23.         m=y1;
  24.     }
  25.     else
  26.     {
  27.         m=y2;
  28.     }
  29.     pdc->SetPixel(x1,y1,color);
  30.     if(l>m)
  31.     {
  32.       while(xk<=l)
  33.       {
  34.           if(pk>0)
  35.           {
  36.               xk=xk+1;
  37.               yk=yk+1;
  38.               pk=pk+d;
  39.               k++;
  40.               pdc->SetPixel(xk,yk,color);
  41.           }
  42.           else
  43.           {
  44.               xk=xk+1;
  45.               pk=pk+q;
  46.               pdc->SetPixel(xk,yk,color);
  47.               k++;
  48.           }
  49.  
  50.       }
  51.     }
  52.     else
  53.     {
  54.         while(yk<=m)
  55.       {
  56.           if(pk>0)
  57.           {
  58.               xk=xk+1;
  59.               yk=yk+1;
  60.               pk=pk+d;
  61.               k++;
  62.               pdc->SetPixel(xk,yk,color);
  63.           }
  64.           else
  65.           {
  66.               xk=xk+1;
  67.               pk=pk+q;
  68.               k++;
  69.               pdc->SetPixel(xk,yk,color);
  70.           }
  71.         }
  72.     }
  73.  
  74.     }
Advertisement
Add Comment
Please, Sign In to add comment