// 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); }