https://en.wikipedia.org/wiki/Bresenham's_line_algorithm
https://en.wikipedia.org/wiki/Bresenham's_line_algorithm