我怎样才能产生冲动,使得b点远离box2d/cocos2diphone中的a点

gle*_*rey 5 math objective-c box2d cocos2d-iphone ios

我正在对box2d对象施加一个冲动,如下所示:

b2Vec2 impulse = b2Vec2(4.0f, 15.0f);
body->ApplyLinearImpulse(impulse, body->GetWorldCenter());  
Run Code Online (Sandbox Code Playgroud)

我知道这可能是高中数学,我保证我已经努力为自己发现这个; 请原谅我的无知.

如果我有对象a,b和c - 并且对象a位于b和c的中点,我如何创建Box2D脉冲以使对象b和c远离速度v?

以高超的技巧和专注的意图绘制的科学图表

jrt*_*c27 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());
Run Code Online (Sandbox Code Playgroud)

我希望大家清楚这里发生了什么。如果没有,请询​​问:)