Encuentra celdas en la matriz que están cruzadas por un segmento de línea dado

Tengo una matriz 2D de celdas con un tamaño de 10x10, y muchos puntos que son pares de valores de coma flotante, como: (1.6, 1.54), (4.53, 3.23). Los pares (x, y) son tales que x <10 e y <10

Cada celda toma puntos cuyas coordenadas tienen la misma parte entera que las coordenadas de la celda. Entonces arr [3] [7] tomará puntos con x = {3 ... 3.99 (9)} e y = {7 ... 7.99 (9)}, por ejemplo (3.5, 7.1) o (3.2, 7.6 ) Del mismo modo (1.6, 1.54) está en arr [1] [1], (4.53, 3.23) está en arr [4] [3], etc.

Cada punto tiene un lugar designado en la matriz que es fácil de encontrar, porque solo tengo que convertir xey para int para deshacerme de los puntos decimales.

Pero me gustaría encontrar qué celdas de la matriz están cruzadas por el segmento de línea entre dos puntos A (x, y) y B (x, y).

Por ejemplo: A (1.5, 2.5) y B (4.3, 3.2) cruzan las celdas en una matriz con índices [1] [2], [2] [2], [3,3] y [3,4]

¿Hay algún algoritmo para eso?

Es un problema similar a ese:Celdas en cuadrícula cruzadas por una línea (PHP)

Respuestas a la pregunta(2)

Su respuesta a la pregunta