Bresenham line generation