-1

私は本を​​読んでいます 例によるゲームAIのプログラミング.彼は、エンティティが減速してターゲットに優雅に到着するようにするステアリング動作のコードを提供します. 距離、ターゲットからソースまでの距離を計算した後、彼は(本質的に)これを行います

double speed = dist/deceleration;

これがどこから来たのか理解できませんが、本当に明白なものが欠けているのでしょうか? 本には既知のエラーとして記載されていないので、正しいと推測しています。

4

2 に答える 2

2

これに物理的な真実があれば、ユニットはどちらの側でも一致していたでしょう.

単位比較

私が理解していることから、これはゼノンのパラドックスに似ています。何かに到達しようとしていますが、常にn残りの距離の 1 分の 1 しか移動しないため、そこに到達することはありません。

仮定する

  • シミュレーションは一度に 1 秒間隔で進行します。
  • deceleration= 5
  • distance= 1000 メートル

これらの初期条件では、メートル/秒speedに設定されます。200シミュレーションは 1 秒間隔で進行するため、正確に200メートル (残りの距離の 5 分の 1) を移動800し、ターゲットからメートルの距離に到達します。新しい速度は次のように決定されます:160メートル/秒

最初の 30 秒間は次のようになります。

方式
最初の 30 秒のプロット

最後の 30 秒:
最後の 30 秒間のプロット

最後の 10 秒:
最後の 10 秒間のプロット

観察

  • 最初の 30 秒以内に、およそ 998 メートル移動します
  • 最初の 50 秒以内に、999.985 メートルをカバーします。
  • 最後の 10 秒以内に、約 1.2cm しかカバーしません

ご覧のとおり、すぐにそこに到達しますが、近づくには長い時間がかかります。

WolframAlphaによるプロット

于 2012-09-16T11:38:37.243 に答える
0

あなたの計算に何かが欠けているのかもしれません。一定の加速 (または減速) の場合、初期条件を無視すると、速度は次のようになります。

v = a * t

そして距離は

d = a * t^2 / 2

両方の式で t を消去すると、次のようになります。

v = a * sqrt(2 * d / a)
于 2012-09-16T13:27:44.437 に答える