Ich schaue mir dieses nette Raycasting-Tutorial unter http://lodev.org/cgtutor/raycasting.html an und habe eine wahrscheinlich sehr einfache mathematische Frage.
Im DDA-Algorithmus habe ich Probleme, die Berechnung der Variablen deltaDistX und deltaDistY zu verstehen. Dies sind die Entfernungen, die der Strahl von 1 x-Seite zur nächsten x-Seite oder von 1 y-Seite zur nächsten zurücklegen muss y-Seite, im quadratischen Raster, aus dem die Weltkarte besteht (siehe Abbildung unten).
Im Tutorial werden sie wie folgt berechnet, jedoch ohne viel Erklärung:
//length of ray from one x or y-side to next x or y-side
double deltaDistX = sqrt(1 + (rayDirY * rayDirY) / (rayDirX * rayDirX));
double deltaDistY = sqrt(1 + (rayDirX * rayDirX) / (rayDirY * rayDirY));
rayDirY und rayDirX sind die Richtung eines gestrahlten Strahls.
Wie bekommt man diese Formeln? Es sieht so aus, als ob der Satz von Pythagoras Teil davon ist, aber irgendwie geht es hier um Spaltung. Kann mich jemand darauf hinweisen, welches mathematische Wissen mir hier fehlt, oder die Formel "beweisen", indem er zeigt, wie sie abgeleitet ist?