2012-11-28 25 views
9

私は誰かがおそらくこの質問をしたと思っていましたが、答えを見つけることができませんでした。複数形の剛体の慣性を計算する

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

ゲームオブジェクトの慣性を計算するのに問題があります。

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

moments of inertia Wikipedia articleで提供されている式で、形状内の各ポリゴンの慣性を計算するのに問題はありません。

で提供されるもの、またはcollision detection & response articleで提供されるものです。

しかし、これをオブジェクトの構造にどのように関連付けるのかというと、オブジェクトの形のすべての慣性を追加するだけですか?それは別の作家がcalculate the inertia of triangulated polygonsに使用しているものであり、彼は三角形の慣性モーメントをすべて加えます。それともそれ以上はありますか?

私は強烈な物理的背景がないので、この慣性概念全体を理解することは非常に困難です。だから誰かが私に答えを与えることができれば、与えられた重心の周りの慣性の背後にある論理を使って、私は非常に感謝しています。私は実際にI.Tを学ぶ。 - 私の大学でのゲーム開発ですが、私の大きな欲求不満のために、彼らのランクの教師は誰も物理学の分野で経験はありません。

+0

@cha - [リンクテキストのW3Cガイダンス](http://www.w3.org/TR/WCAG10-HTML-TECHS/#link-text)を読んでみてください。 – Flexo

+0

@Flexo私はあなたを手に入れませんでした... – Chaitanya

答えて

-1

リニアモーションの場合は、追加するだけです。慣性は質量に比例する。あなたのオブジェクトの質量を加え、合計の慣性を計算することは、個々の慣性を加えることと同じです。

回転すると、それはより複雑になり、質量の中心を見つける必要があります。

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

具体的には、質量、慣性、力、加速度、運動量、速度、運動エネルギーという概念を理解してください。彼らはすべて関連している。

+0

-1を明確にしてください:いいえ、あなただけで追加することはできません。 2Dの土地でさえ、平行軸の定理について心配する必要があります。 –

+0

ああ、本当です。私は直線運動のみを考慮した。詳しく教える? – Minthos

+2

質量中心ずれを考慮する必要があります。ポイントマスと質量のないロッドを接続するとどうなるか考えてみましょう。質量のないロッドは質量がゼロでゼロの慣性モーメントを有する。点の質量は質量中心に対して慣性モーメントがゼロであるため、対象物の慣性モーメントを加えるだけでゼロになります。平行軸の定理オフセットを追加することで、正の慣性モーメントを持つ複合オブジェクトが作成されます。 –

2

ローレンスの場合、物理学は2次元空間にとどまっている方がずっと簡単です。 2D空間では、回転はスカラーで記述され、回転に対する抵抗(慣性モーメント)はスカラーによって記述され、回転は加算的かつ可換的である。物事は三次元空間で毛むくじゃら(多く、毛が多い)になります。

2つのオブジェクトを接続すると、結合されたオブジェクトには重心があります。この結合されたオブジェクトの慣性モーメントを計算するには、個々のオブジェクトの慣性モーメントを合計し、個々のオブジェクトごとにSteiner parallel axis theoremによって与えられたオフセット項を追加する必要があります。このオフセット項は、物体の質量と複合質量中心までの距離の2乗を掛けたものです。

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

ゲーム物理学に関する優れた初心者用の書籍がおそらく整っています。お勧めのテキストのリストはthis question at the gamedev sister siteにあります。

+0

ああ、私のポストの最終リンクの記事の作家は正しかったです。それを指摘してくれてありがとう、「平行軸定理」という言葉は知らなかった。 – Laurens

+0

なぜ私は慣性モーメントが必要なのか理解していますが、計算方法は不明です。慣性の値が本当に大きいのは普通ですか?私はそれをあなたが記述したように計算する方法を使用しましたが、それは私に大きな数字を与えています。幅と高さが80の1つの四角形のポリゴンで構成されたオブジェクトをテストすると、その中心がオブジェクトの中心に配置され、飛び出す慣性は3413333.3333333335です。私はオブジェクトの領域から現在の1に設定されている密度スカラー値を使ってオブジェクト質量を計算します。これは正常な結果ですか?それはちょうど巨大な数のように思えます。 – Laurens

+0

Oそして物理学書のリストに感謝します。私は実際にそれを使うことができます。私の衝突応答コードは、現時点では非常に間違った結果をもたらしています – Laurens

関連する問題