¿Cómo puedo hacer un impulso para que el punto b se aleje del punto a en box2d / cocos2diphone

Estoy aplicando un impulso en un object box2d con algo como esto:

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

Sé que esto es probablemente matemáticas de la secundaria, y prometo que he hecho esfuerzos para descubrir esto por mí mismo; perdona mi ignorancia

Si tengo los objects a, byc, y el object a está en el punto medio de byc, ¿cómo puedo crear un impulso Box2D para que los objects byc se alejen de a a velocidad v?

diagrama científico dibujado con gran habilidad e intención enfocada

Intente usar esto:

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

Espero que quede claro lo que está pasando aquí. Si no, solo pregunta 🙂