绘制直线

 1 void drawLine(int x1,int y1,int x2,int y2,UINT color)
 2 {
 3     int dx = x2 - x1;
 4     int dy = y2 - y1;
 5     int ux = ((dx > 0) << 1) - 1;//x的增量方向,取1或-1
 6     int uy = ((dy > 0) << 1) - 1;//y的增量方向,取1或-1
 7 
 8     dx = abs(dx);
 9     dy = abs(dy);
10 
11     int x = x1, y = y1;
12     int eps = 0;
13 
14     //线段靠近x轴
15     if(dx > dy)
16     {
17         for (x = x1;x != x2 + ux;x += ux)
18         {
19             setPixels(x, y, color);
20             eps += dy;
21             if((eps << 1) >= dx)
22             {
23                 y += uy;
24                 eps -= dx;
25             }
26         }
27     }
28     else
29     {
30         for (y = y1; y != y2 + uy; y += uy)
31         {
32             setPixels(x, y, color);
33             eps += dx;
34             if ((eps << 1) >= dy)
35             {
36                 x += ux;
37                 eps -= dy;
38             }
39         }
40     }
41 }
原文地址:https://www.cnblogs.com/riaol/p/5446608.html