Когда вы делите на ноль (или достаточно маленькое число), невозможно представить результат в записи с плавающей запятой. В этом случае вы получаете одну из бесконечностей (+ Inf или -Inf).
Например, если у вас уже есть наибольшее число, которое может быть представлено удвоениями IEEE754, и вы делите его на 0,1 (то есть умножаете на 10), вы получите + Inf.
IEEE754 выделяет некоторые битовые комбинации специальным значениям, таким как +/- бесконечность и NaN (не число).
Я давно перестал пытаться представлять линии как (градиент, y-пересечение) пары на компьютерах (это нормально на бумаге, так как вы можете вычислять с бесконечностью в своей голове). Вы можете избежать всех неприятностей бесконечности, просто представив линии в виде (x1, y1, x2, y2) 4-кортежей - вы найдете алгоритмы, которые работают довольно хорошо для всех градиентов, если вы представите свои отрезки линий таким образом.
В противном случае вам всегда понадобится специальная обработка для почти вертикальных линий, которые вызывают переполнение при расчете градиента.