// draw a line from any 2 points, algori

//     thm orignaly written by

// Bresenham, in 1950

void mxline(HWND hwnd, int start_x,int start_y,int stop_x, int stop_y,COLORREF color)

    {

     int y_unit,x_unit;

     int ydiff = stop_y-start_y;

     if(ydiff<0)

         {

         ydiff = ydiff;

         y_unit=-1;

         }

         else

             {

             y_unit =1;

             }

             int xdiff=stop_x-start_x;

             if(xdiff<0)

                 {

                 xdiff=-xdiff;

                 x_unit = -1;

                 }

                 else

                     {

                     x_unit = 1;

                     }

                     // drawing

                     HDC dc;

                     dc = GetDC(hwnd);

                     int error_term=0;

                     if(xdiff>ydiff)

                         {

                         int length=xdiff+1;

                         for(int i = 0; i 

                             {

                             SetPixel(dc,start_x,start_y,color);

                             start_x += x_unit;

                             error_term+=ydiff;

                             if(error_term>xdiff)

                                 {

                                 error_term-=xdiff;

                                 start_y+=y_unit;

                                 }

                                 }

                                 }

                                 else

                                     {

                                     int length = ydiff+1;

                                     for(int i = 0; i < length; i++)

                                         {

                                         SetPixel(dc,start_x,start_y,color);

                                         start_y += y_unit;

                                         error_term+=xdiff;

                                         if(error_term>0)

                                             {

                                             error_term-=ydiff;

                                             start_x += x_unit;

                                             }

                                             }

                                             }

                                            ReleaseDC(hwnd,dc);

                                        }