9

誰かがおそらく以前にこの質問をしたと思いましたが、答えを見つけることができませんでした。

私は自分のゲームエンジン用の物理ライブラリを書いています(2d、現在actionscript3ですが、Cベースの言語に簡単に翻訳できます)。

ゲームオブジェクトの慣性を計算するための適切な式を見つけるのに問題があります。

問題は、凸多角形の重心の周りの慣性を計算するための実証済みの式がたくさんあるということですが、私の構造は少し異なります。独自のローカル空間を持つゲームオブジェクトがあります。このローカルスペースに円や凸多角形などの凸形状を追加して、複雑なオブジェクトを形成できます。形状自体にも独自のローカルスペースがあります。つまり、ワールド、オブジェクト、シェイプスペースの3つのレイヤーがあります。

慣性モーメントのウィキペディアの記事で提供されている式を使用して、形状内の個々のポリゴンの慣性を計算するのに問題はありません。

または素晴らしい衝突検出と応答の記事で提供されているもの。

しかし、これをオブジェクトの構造にどのように関連付けるのか疑問に思っています。オブジェクトの形状の慣性をすべて追加するだけですか?これは、別のライターが三角形分割されたポリゴンの慣性を計算するために使用するものです。彼は、三角形のすべての慣性モーメントを追加します。それともそれ以上のものがありますか?

私は物理学の強いバックグラウンドを持っていないので、この慣性の概念全体を理解するのは非常に難しいと思います。したがって、誰かが私に答えを提供できれば、できれば特定の重心の周りの慣性の背後にあるロジックを提供できれば、私は非常に感謝しています。私は実際にITを勉強しています-私の大学でゲーム開発をしていますが、私の大きな欲求不満には、彼らのランクの教師は誰も物理学の分野で経験を積んでいません。

4

2 に答える 2

2

ローレンス、2次元空間にとどまると、物理学ははるかに単純になります. 2D 空間では、回転はスカラーで記述され、回転に対する抵抗 (慣性モーメント) はスカラーで記述され、回転は加法および可換です。3 次元空間では、物事は毛むくじゃらになります (はるかに毛むくじゃらになります)。

2 つのオブジェクトを接続すると、結合されたオブジェクトには独自の重心があります。この結合されたオブジェクトの慣性モーメントを計算するには、個々のオブジェクトの慣性モーメントを合計し、個々のオブジェクトごとにシュタイナーの平行軸定理によって与えられるオフセット項を追加する必要があります。このオフセット項は、物体の質量に合成重心までの距離の 2 乗を掛けたものです。

慣性モーメントを知る必要がある主な理由は、オブジェクトに作用するトルクに対する応答をシミュレートできるようにするためです。これは、2D 物理学ではかなり単純です。回転動作は、ニュートンの第 2 法則に類似しています。F=ma の代わりに T=Iα を使用します。(3D 空間ではさらに複雑になります。) 外力とトルクを求め、直線加速度と回転加速度を解き、数値的に積分する必要があります。

ゲームの物理学に関する優れた初心者向けの本はおそらく適切です。この質問の推奨テキストのリストは、gamedev 姉妹サイト にあります。

于 2012-11-28T16:59:55.047 に答える
-1

直線運動の場合は、それらを追加するだけです。慣性は質量に比例します。オブジェクトの質量を加算して合計の慣性を計算することは、個々の慣性を加算することと同じです。

回転の場合はさらに複雑になり、重心を見つける必要があります。

ニュートンの運動の法則を読んでください。物理エンジンを作成する場合は、それらを理解する必要があります。法律自体は非常に短いですが、それらを理解するにはより多くの文脈が必要なので、ググってみてください。

具体的には、質量、慣性、力、加速度、運動量、速度、運動エネルギーなどの概念を理解しようとする必要があります。それらはすべて関連しています。

于 2012-11-28T16:41:32.477 に答える