I checked how the applyForce function on rigid bodies in 3 different physic engines work (cannon.js, matter.js, PhysicsJS) and it seems that this is the common way to do it:

function applyForce(position, force) {
    // linear
    this.force.x += force.x;
    this.force.y += force.y;
    // torque
    var relativeX = position.x - this.position.x;
    var relativeY = position.y - this.position.y;
    this.torque += relativeX * force.y - relativeY * force.x;

The force vector first gets added fully to the force vector of the body, and then additionally a torque is added, based on the where the force was applied relative to the center of mass.

How does the body receive the full linear force additionally to the torque? Doesn't that mean the body received more force than it was applied to?

If the body couldn't rotate, adding the full force lineary would make sense, but since it does, it seems unnatural to me. Where does the additional force come from?


1 Answer 1


Your belief that angular acceleration should somehow diminish linear acceleration is simply false.

The linear and angular momentum of a system are each separately conserved.

Imagine a unit cube, axis aligned, and placed at the origin.

I fire a fast-moving BB pellet in the rightward / +x direction, striking the left side of the cube. The cube's normal here points exactly opposite the pellet's motion, so the collision forces act along the x axis: reflecting the pellet back leftward, and giving the cube a nudge to the right.

The pellet exits with a momentum pointing exactly left, so the cube must obtain a momentum pointing exactly right to preserve the linear momentum of the system as a whole.

Crucially, the pellet's resulting linear momentum is the same no matter where on the face it struck the cube. (From its perspective, the instantaneous interaction looks identical) That means the momentum the cube obtains must be the same to balance it, no matter whether it was struck in the center of the face and received no torque, or near the edge of the face which would also apply a torque.

So, torque does not subtract from the linear forces an object receives.

You can think of it as the same energy, just being non-uniformly distributed through the cube. When hit in the center of the face, all parts of the rigid cube are forced to move at the same velocity. But when hit off-center, one side of the cube moves faster while the other side moves slower, causing it to turn, but the average velocity across the whole cube, the velocity of the center of mass, remains the same in both cases.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .