グリッド内のあるフィールドから別のフィールドへの「ステップ」の量を計算するにはどうすればよいですか?
私は開発中のゲームに A* パスファインディング システムを実装していますが、この単純な数学的操作が邪魔です。
私はおそらく3年生に再出席する必要があります。ハハ。
グリッド内のあるフィールドから別のフィールドへの「ステップ」の量を計算するにはどうすればよいですか?
私は開発中のゲームに A* パスファインディング システムを実装していますが、この単純な数学的操作が邪魔です。
私はおそらく3年生に再出席する必要があります。ハハ。
私の理解が正しければ、必要な x、y の動きを合計するだけだと思います。(x1,y1)
2 点とが与えられ(x2,y2)
た場合、距離 (「直角に移動する」とは水平方向および/または垂直方向にのみ移動することを意味すると仮定) は、次のようになります。
abs(x1-x2) + abs(y1-y2)
たとえば、位置 (1,1) から (3,4) に移動するということは、右に 2 つ、上に 3 つ、合計 5 つ移動することを意味します。 abs(1-3)+abs(1-4) = 2 + 3 = 5
これは単純な数学の問題だと思います。
確かに、開始の x / y 値と終了の x / y 値はわかっています。2 つの間の距離を取得するには、次のようにします。
距離 = sqrt(dx^2 + dy^2)
ここで、dx は点の x 座標の差です。dy は点の y 座標の差です。
たとえば、座標 A が A(15,20) で、座標 B が B(35,5) であるとします。
dx = 35 - 15 = 20; ダイ = 20-5 = 15;
したがって;
AB 間の距離 = sqrt(20^2 + 15^2) = 25.0 単位。
最終的な答えとして、これはプログラム内の「ステップ」の単位数によって異なります。ステップが 5 単位の場合、(25/5) よりも、ポイント A から B に到達するのに 5 つのステップが必要です。