2D 環境で別の物体と衝突する物体の相対速度を決定する方法を見つけようとしています。
たとえば、1 つの物体が (1,0) で移動していて、その後ろを移動している別の物体が (2,0) で後ろから衝突した場合、最初の物体に対する衝撃の速度は (1,0) でした。
速度が測定されている物体に属する速度と、衝突する物体に属する速度の 2 つの速度を取り込んで、相対速度を返すメソッドが必要です。
ねえ?確かに、これはベクトル 1 のコンポーネント 1 - ベクトル 2 のコンポーネント 1 とベクトル 1 のコンポーネント 2 - ベクトル 2 のコンポーネント 2 である必要がありますか? メソッドを書く
vector v3 = new vector(v1.x-v2.x, v1.y-v2.y);
実際、Vector2 構造体には、次の結果を生成する減算メソッドがあります。
既に C# に何が含まれているかはわかりませんが、物理演算を含む Vector ライブラリを使用することでメリットが得られます。単純なベクトル ライブラリは相対速度を決定しますが、物理 (たとえば、粒子の跳ね返り) を行っている場合は、粒子の質量を考慮し、運動量を保存する必要がある場合があります (たとえば、速度 (1,2) と ( -1,3) お互いに衝突する. その場合, すべての粒子の質量, 位置, 速度をモデル化するクラスが必要になる. (これは例えば, 原子でできた物質をシミュレートする際に行われることである.