1

デジタルの世界では実際の衝突はほとんど起こらないので、「衝突する」ボールが重なる状況が常に発生します。

ボールが重なり合うことなく完全に衝突する状況でボールを戻すにはどうすればよいですか?

この問題は事後アプローチ (2 次元) で解決します。

要するに、t についてこの方程式を解かなければなりません。

((x2 - t * v.x2) - (x1 - t * v.x1))^2 + ((y2 - t * v.y2) - (y1 - t * v.y1))^2 = (r1 + r2)^2

どこ:

  • tは、衝突が完全に発生したのは何フレーム前ですか?という質問に答える数値です。
  • (x1, y1)最初のボールの中心です
  • (x2, y2)は 2 番目のボールの中心です
  • (v.x1、v.y1)(v.x2、v.y2)はその速度です。

しかし、WolframAlphaのソリューションは複雑すぎます (速度の名前を変更しましたが、本質的には何も変更されません)。

4

1 に答える 1

3

単純化された多項式形式ではなく、完全なソリューションであるため、複雑に見えます。すべてを掛けて、定数、t、および t^2 項を集めると、^2 + bt + c = 0 になることがわかります。そこから、二次式を使用できます。

また、物事をシンプルに保ちたい場合は、ベクトル演算を使用してください。ここで、x 座標と y 座標を分離する理由はありません。ベクトル加算と内積だけで十分です。

最後に、重要なのは相対位置と相対速度だけです。1 つの円が原点にあり静止していると仮定し、その差をもう 1 つのボールに適用します。それは答えを変えませんが、あなたが争っている変数の数を減らします。

于 2013-09-08T13:53:55.117 に答える