Finde Zellen in einem Array, die von einem bestimmten Liniensegment gekreuzt werden
Ich habe ein 2D-Array von Zellen mit der Größe 10x10 und viele Punkte, die Paare von Gleitkommawerten sind, z. B .: (1.6, 1.54), (4.53, 3.23). Die Paare (x, y) sind so, dass x <10 und y <10
Jede Zelle nimmt Punkte auf, deren Koordinaten den gleichen ganzzahligen Anteil wie die Zellenkoordinaten haben. Also nimmt arr [3] [7] Punkte mit x = {3 ... 3,99 (9)} und y = {7 ... 7,99 (9)}, zum Beispiel (3,5, 7,1) oder (3,2, 7,6) ). In ähnlicher Weise befindet sich (1.6, 1.54) in arr [1] [1], (4.53, 3.23) in arr [4] [3] usw.
Jeder Punkt hat eine festgelegte Stelle im Array, die leicht zu finden ist, da ich nur x und y auf int setzen muss, um die Dezimalstellen zu entfernen.
Aber ich möchte herausfinden, welche Zellen im Array vom Liniensegment zwischen zwei Punkten A (x, y) und B (x, y) gekreuzt werden.
Zum Beispiel: A (1,5, 2,5) und B (4,3, 3,2) kreuzen Zellen in einem Array mit den Indizes [1] [2], [2] [2], [3,3] und [3,4]
Gibt es einen Algorithmus dafür?
Es ist ein ähnliches Problem wie dieses:Zellen im Raster durchkreuzt von einer Linie (PHP)