1

グリッド内のあるフィールドから別のフィールドへの「ステップ」の量を計算するにはどうすればよいですか?

私は開発中のゲームに A* パスファインディング システムを実装していますが、この単純な数学的操作が邪魔です。

私はおそらく3年生に再出席する必要があります。ハハ。

4

2 に答える 2

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

于 2011-03-30T19:00:54.380 に答える
0

これは単純な数学の問題だと思います。

確かに、開始の 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 つのステップが必要です。

于 2011-03-30T19:10:09.163 に答える