5

次のような box2d オブジェクトにインパルスを適用しています。

b2Vec2 impulse = b2Vec2(4.0f, 15.0f);
body->ApplyLinearImpulse(impulse, body->GetWorldCenter());  

私はこれがおそらく高校の数学であることを知っており、これを自分で発見するために努力したことを約束します。私の無知を許してください。

オブジェクト a、b、c があり、オブジェクト a が b と c の中間点にある場合、オブジェクト b と c が速度 v で a から離れるように Box2D インパルスを作成するにはどうすればよいですか?

優れたスキルと集中的な意図で描かれた科学的な図

4

1 に答える 1

3

これを使用してみてください:

b2Vec2 impulseB = bodyB->GetPosition() - bodyA->GetPosition();
impulseB /= impulseB.Length();
impulseB *= predefinedScaleValue; // predefinedScaleValue is your velocity
b2Vec2 impulseC = -impulseB;
bodyB->ApplyLinearImpulse(impulseB, bodyB->GetWorldCenter());
bodyC->ApplyLinearImpulse(impulseC, bodyC->GetWorldCenter());

ここで何が起こっているのかが明確になることを願っています。そうでない場合は、質問してください:)

于 2012-04-18T07:15:15.247 に答える