私はhttp://lodev.org/cgtutor/raycasting.htmlでこの素晴らしいレイキャスティングチュートリアルをチェックしていて、おそらく非常に単純な数学の質問があります。
DDAアルゴリズムで、光線が1つのx側から次のx側へ、または1つのy側から次へと移動する距離であるdeltaDistXおよびdeltaDistY変数の計算を理解できません。 y側、世界地図を構成する正方形のグリッド内(下のスクリーンショットを参照)。
チュートリアルでは、それらは次のように計算されますが、あまり説明されていません。
//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とrayDirXは、キャストされた光線の方向です。
これらの数式をどのように取得しますか?ピタゴラスの定理がその一部であるように見えますが、どういうわけかここに関与する分割があります。ここで不足している数学的知識について誰かが私に手掛かりを与えたり、それがどのように導出されたかを示すことによって式を「証明」したりできますか?