Rysowanie odcinka algorytmem Bresenhama Procedura w języku C: // x1 , y1 - współrzędne początku odcinka // x2 , y2 - współrzędne końca odcinka void BresenhamLine(const int x1, const int y1, const int x2, const int y2) { // zmienne pomocnicze int d, dx, dy, ai, bi, xi, yi; int x = x1, y = y1; // ustalenie kierunku rysowania if (x1 < x2)
xi = 1; dx = x2 - x1;
else
xi = -1; dx = x1 - x2;
// ustalenie kierunku rysowania if (y1 < y2)
yi = 1; dy = y2 - y1;
else
yi = -1; dy = y1 - y2;
// pierwszy piksel glVertex2i(x, y); // oś wiodąca OX if (dx > dy)
ai = (dy - dx) * 2; bi = dy * 2; d = bi - dx; // pętla po kolejnych x while (x != x2)
// test współczynnika if (d >= 0)
x += xi; y += yi; d += ai;
else
d += bi; x += xi;
glVertex2i(x, y);
// oś wiodąca OY else
ai = ( dx - dy ) * 2; bi = dx * 2; d = bi - dy; // pętla po kolejnych y while (y != y2)
// test współczynnika if (d >= 0)
x += xi; y += yi; d += ai;
else
d += bi; y += yi;
glVertex2i(x, y);