Алгоритм Брезенхема рисования линий

Загрузить архив с примерами ЗДЕСЬ.

Алгоритм Брезенхема для рисования линий приведен ниже. Загрузить проект /src/01.007-brezenhame/3d_cubeY_Brezenhame.


void Draw_Line_Brezenhame(int x1, int y1, int x2, int y2)
{
    HDC hDC = GetDC(hWnd);

    const int deltaX = abs(x2 - x1);
    const int deltaY = abs(y2 - y1);
    const int signX = x1 < x2 ? 1 : -1;
    const int signY = y1 < y2 ? 1 : -1;
    int error = deltaX - deltaY;

    SetPixel(hDC, x2, y2, RGB( 255, 255, 127) );

    while(x1 != x2 || y1 != y2) 
    {
        SetPixel(hDC, x1, y1, RGB( 255, 255, 127) );
        
	int error2 = error * 2;
        
	if(error2 > -deltaY) 
        {
            error -= deltaY;
            x1 += signX;
        }
        
		if(error2 < deltaX) 
        {
            error += deltaX;
            y1 += signY;
        }
    }

    ReleaseDC(hWnd, hDC);

}