私は本を読んでいます 例によるゲームAIのプログラミング.彼は、エンティティが減速してターゲットに優雅に到着するようにするステアリング動作のコードを提供します. 距離、ターゲットからソースまでの距離を計算した後、彼は(本質的に)これを行います
double speed = dist/deceleration;
これがどこから来たのか理解できませんが、本当に明白なものが欠けているのでしょうか? 本には既知のエラーとして記載されていないので、正しいと推測しています。
私は本を読んでいます 例によるゲームAIのプログラミング.彼は、エンティティが減速してターゲットに優雅に到着するようにするステアリング動作のコードを提供します. 距離、ターゲットからソースまでの距離を計算した後、彼は(本質的に)これを行います
double speed = dist/deceleration;
これがどこから来たのか理解できませんが、本当に明白なものが欠けているのでしょうか? 本には既知のエラーとして記載されていないので、正しいと推測しています。
これに物理的な真実があれば、ユニットはどちらの側でも一致していたでしょう.
私が理解していることから、これはゼノンのパラドックスに似ています。何かに到達しようとしていますが、常にn
残りの距離の 1 分の 1 しか移動しないため、そこに到達することはありません。
仮定する
deceleration
= 5distance
= 1000 メートルこれらの初期条件では、メートル/秒speed
に設定されます。200
シミュレーションは 1 秒間隔で進行するため、正確に200
メートル (残りの距離の 5 分の 1) を移動800
し、ターゲットからメートルの距離に到達します。新しい速度は次のように決定されます:160
メートル/秒
最初の 30 秒間は次のようになります。
最後の 30 秒:
最後の 10 秒:
観察
ご覧のとおり、すぐにそこに到達しますが、近づくには長い時間がかかります。
WolframAlphaによるプロット
あなたの計算に何かが欠けているのかもしれません。一定の加速 (または減速) の場合、初期条件を無視すると、速度は次のようになります。
v = a * t
そして距離は
d = a * t^2 / 2
両方の式で t を消去すると、次のようになります。
v = a * sqrt(2 * d / a)