Encontre células na matriz que são cruzadas por um determinado segmento de linha

Eu tenho uma matriz 2D de células com tamanho 10x10 e muitos pontos que são pares de valores de ponto flutuante, como: (1,6, 1,54), (4,53, 3,23). Os pares (x, y) são tais que x <10 e y <10

Cada célula possui pontos cujas coordenadas têm a mesma parte inteira que as coordenadas da célula. Portanto, arr [3] [7] terá pontos com x = {3 ... 3,99 (9)} e y = {7 ... 7,99 (9)}, por exemplo (3,5, 7,1) ou (3,2, 7,6 ) Da mesma forma (1.6, 1.54) está em arr [1] [1], (4.53, 3.23) está em arr [4] [3], etc.

Cada ponto tem um local designado na matriz que é fácil de encontrar, porque eu só tenho que converter x e y para tentar me livrar dos pontos decimais.

Mas eu gostaria de descobrir quais células da matriz são cruzadas pelo segmento de linha entre dois pontos A (x, y) e B (x, y).

Por exemplo: A (1.5, 2.5) e B (4.3, 3.2) cruzam as células na matriz com os índices [1] [2], [2] [2], [3,3] e [3,4]

Existe algum algoritmo para isso?

É um problema semelhante àquele:Células na grade cruzadas por uma linha (PHP)

questionAnswers(2)

yourAnswerToTheQuestion