Advertisement
Guest User

Untitled

a guest
Apr 24th, 2014
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.20 KB | None | 0 0
  1. //------------------------------------------------------------------------------
  2. void bresline0(int xa,int ya,int xb,int yb)
  3. {
  4.     int dx,dy,e,ekt,et,c,x,y;
  5.     dx=xb-xa;
  6.     dy=yb-ya;
  7.     ekt=dy+dy;
  8.     e=ekt-dx;
  9.     et=e-dx;
  10.     c=getcolor();
  11.     for(x=xa,y=ya; x<=xb; x++)
  12.     {
  13.         putpixel(x,y,c);
  14.         if(e<0)e+=ekt;
  15.         else
  16.         {
  17.             y++;
  18.             e+=et;
  19.         }
  20.     }
  21. }
  22. //------------------------------------------------------------------------------
  23. void bresline1(int xa,int ya,int xb,int yb)
  24. {
  25.     int dx,dy,e,ekt,et,c,x,y;
  26.     dx=xb-xa;
  27.     dy=yb-ya;
  28.     ekt=dx+dx;
  29.     e=ekt-dy;
  30.     et=e-dy;
  31.     c=getcolor();
  32.     for(y=ya,x=xa; y<=yb; y++)
  33.     {
  34.         putpixel(x,y,c);
  35.         if(e<0)e+=ekt;
  36.         else
  37.         {
  38.             x++;
  39.             e+=et;
  40.         }
  41.     }
  42. }
  43. //------------------------------------------------------------------------------
  44. void bresline2(int xa,int ya,int xb,int yb)
  45. {
  46.     int dx,dy,e,ekg,eg,c,x,y;
  47.     dx=xb-xa;
  48.     dy=-(yb-ya);
  49.     ekg=dy+dy;
  50.     e=ekg-dx;
  51.     eg=e-dx;
  52.     c=getcolor();
  53.     for(x=xa,y=ya; x<=xb; x++)
  54.     {
  55.         putpixel(x,y,c);
  56.         if(e<0)e+=ekg;
  57.         else
  58.         {
  59.             y--;
  60.             e+=eg;
  61.         }
  62.     }
  63. }
  64. //------------------------------------------------------------------------------
  65. void bresline3(int xa,int ya,int xb,int yb)
  66. {
  67.     int dx,dy,e,ekt,et,c,x,y;
  68.     dx=xb-xa;
  69.     dy=-(yb-ya);
  70.     ekt=dx+dx;
  71.     e=ekt-dy;
  72.     et=e-dy;
  73.     c=getcolor();
  74.     for(y=ya,x=xa; y>=yb; y--)
  75.     {
  76.         putpixel(x,y,c);
  77.         if(e<0)e+=ekt;
  78.         else
  79.         {
  80.             x++;
  81.             e+=et;
  82.         }
  83.     }
  84. }
  85. void bresline(int xa,int ya,int xb,int yb)
  86. {
  87.     int i,c;
  88.     float m;
  89.     if(xa>xb)
  90.     {
  91.         hv(&xa,&xb);
  92.         hv(&ya,&yb);
  93.     }
  94.     c=getcolor();
  95.     if(xa==xb) for(i=ya; i<=yb; i++) putpixel(xa,i,c);
  96.     if(ya==yb) for(i=xa; i<=xb; i++) putpixel(i,ya,c);
  97.     else
  98.     {
  99.         m =(float)(yb-ya)/(float)(xb-xa);
  100.         if((m>0)&&(m<1))bresline0(xa,ya,xb,yb);
  101.         if(m>=1) bresline1(xa,ya,xb,yb);
  102.         if(m<=-1) bresline3(xa,ya,xb,yb);
  103.         if((m<0)&&(m>-1))bresline2(xa,ya,xb,yb);
  104.     }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement