The resulting method is known as Bresenham's line drawing algorithm
    public void lineBresenham(int x0, int y0, int x1, int y1, Color color) {
        int pix = color.getRGB();
        int dy = y1 - y0;
        int dx = x1 - x0;
        int stepx, stepy;
        if (dy < 0) { dy = -dy;  stepy = -1; } else { stepy = 1; }
        if (dx < 0) { dx = -dx;  stepx = -1; } else { stepx = 1; }
        dy <<= 1;                                              // dy is now 2*dy
        dx <<= 1;                                              // dx is now 2*dx
        raster.setPixel(pix, x0, y0);
        if (dx > dy) {
            int fraction = dy - (dx >> 1);                     // same as 2*dy - dx
            while (x0 != x1) {
                if (fraction >= 0) {
                    y0 += stepy;
                    fraction -= dx;                            // same as fraction -= 2*dx
                }
                x0 += stepx;
                fraction += dy;                                // same as fraction -= 2*dy
                raster.setPixel(pix, x0, y0);
            }
        } else {
            int fraction = dx - (dy >> 1);
            while (y0 != y1) {
                if (fraction >= 0) {
                    x0 += stepx;
                    fraction -= dy;
                }
                y0 += stepy;
                fraction += dx;
                raster.setPixel(pix, x0, y0);
            }
        }
    }
Lecture 5 Slide 16 6.837 Fall '98