2

他のみんなと同じように、ブラッシュアップのためだけに Thrust のクローンを作成しています。船がポッドを持ち上げる段階まで来ました。

基本的に、剛性のある質量のないロッドに接続された 2 つの質量 (球の中心のみを考慮) があります。L は決して変化せず、壊れません。

ボール!

この場合、ship(ma) の質量は 1.0、pod(mb) の質量は 2.0 です。新しい位置を計算するために必要な計算は何ですか? ship(ma) に推力を適用するとき、それを pod(mb) に適用するにはどうすればよいですか? (そして思い通りに振り回す) 船自体をやることは単純明快で、いつもの velx-=sin(angle)*thrust, vely+=cos(angle)*thrust でした。posx+=velx. など。これを行う方法は以前は知っていましたが、学校は何年も前のことです。

4

2 に答える 2

1

これは、回転部分を平行移動部分から分割することによってコーディングするのが最も簡単です。

ボールAに加えられた力の合計があります-たとえば、重力+エンジンからの推力+摩擦力。これをFA(ベクトル)とします。ボールBに加えられた力の合計があります-たとえば、重力+摩擦力。これをFB(ベクトル)とします。

オブジェクトの重心はロッド上にあります。場所(ma A + mb B)/(ma + mb)にあります。これは、質量Aからの距離caです。ここで、ca = mb /(ma + mb)です。| AB | 質量Bからの距離cb。ここでcb=ma /(ma + mb)。| AB |。UをABの正規化バージョンとしますつまり、 Uは単位長です)。

重心の位置= Xおよび角度シータが得られるようにシステムをモデル化します。また、速度Vと回転速度wを保存します。線形加速度Aと回転加速度w'を求めます。

重心の動きは、システムのTOTAL力とTOTAL質量を使用して、ニュートンの法則によって支配されます。

FA + FB =(ma + mb)。A

回転は、関係するトルクによって制御されます。(スカラー)トルク=重心からのxベクトル。したがって、各オブジェクトのトルクは次のようになります。

TA = FA x ca.- U

TB = FBxcbU

これは2D外積、つまりTA = FA [x] * ca.- U [y] -FA [y] * ca.- U [x]であることに注意してください。

慣性モーメントは次のように定義されます。

I = ca * ca * ma + cb * cb * mb

それで

TA + TB = Iw '

Xとシータが与えられた各質量の位置の導出は、読者の練習問題として残されています:)

于 2011-02-10T15:40:00.020 に答える
1

ここにあなたのための2つのアプローチがあります。

最初のものはより単純です。剛性を緩めます。両者をつなぐ棒をバネにする。それがそれらの両方に及ぼす等しく反対の力は、その長さが変位した量に比例します。スプリングを非常に硬くすると、非常に単純にほぼ硬直したバーができます。

2 つ目は、バーを実際に硬くすることです。この場合、システム全体は、重心の位置と速度、およびシステム全体の回転の角度と速度によって記述できます。重心は、システム内のポイントの位置の加重平均にそのポイントの質量を掛けたものです。あなたの場合、ポッドに向かってバーに沿って2/3のポイントになります。(ポッドは船の重量の 2 倍の重量があるためです。) どこを押しても、重心は重心で押したかのように移動するため、重心を移動する方法は既にわかっています。

ここで、回転率を考慮する必要があります。船に力を加えると、その一部が棒に対して直角になります。その部分は、重心の移動に加えて、システムを回転させます。力のその部分は船を加速していますが、ポッドは加速していません。船に力を加えると、加速率がわかります。重心は船の 1/3 の速度で加速しています。したがって、重心の観点から見ると、船の横方向の加速度の 2/3 がシステムを回転させます。2/3 を重心から船までの距離で割ると、角加速度が得られます。

于 2011-02-10T08:31:57.783 に答える