Jump to content
  • Advertisement
Sign in to follow this  

Applying eccentric force

This topic is 2784 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I develop small game projects mostly out of curiosity on what kind of physics they require (read: they never get finished). I'm not that active, but during the past years I have noticed that when I begin something I always end up struggling with the same problem. I'd now like to sort it out for good.

The task is to apply an eccentric force to an object. That is, a force that is not directed to the center of mass. As a simple example consider a homogenous sphere (the simplest possible 3d object) that has a small (weightless) thruster attached on its surface. The thruster may be directed towards the center of mass, tangentially along the surface or any other direction. In a general case it could also be located inside it. When the thruster is activated it creates a push that moves the sphere. The length of the thrust may be assumed to be arbitrary short for simplicity (integration would be nice, but iteration should be enough for games).

Now the thrust generates two kinds of movement for the sphere - linear and rotational. The problem is to compute how much of the force is transitioned to linear movement and how much to the rotation. I assume that the total kinetic energy is a constant regardless of how the thruster is aligned. The variable is how the energy is divided between linear and rotational movement.

I'm surprised that I have never been able to find clear answer to this problem on any site. I'd believe it would be a very common computation and should not be excessively complicated when using Newton mechanics and iteration. Just a few days ago I found a site that finally seemed to give the equations, but when I analysed them further I'm not very convinced. Some key issues seem to be omitted and as it is a page made by a student it might very well be incorrect.

Anyone with a solution?

Share this post

Link to post
Share on other sites
I think the easiest way to think about this is to imagine two thrusters on two diametrically opposed points of the sphere, both pushing in the same tangential direction. It should be intuitively clear that they would have no effect on the rotation, and all their effect would go to the linear movement, and this effect would be the same as if the thrusters were pushing at the center of mass.

Now imagine a similar situation where one of the thrusters is pointing backwards. Now you would expect all the effect to be on the rotation and none on the linear movement.

Well, if the effects of the thrusters are additive, it means that the effect on the linear movement is exactly the same as if you were pushing at the center of mass, and then you have the rotational effect, and they both happen independently.

Perhaps a physicist would have a more convincing argument, but this one satisfies me.

Share this post

Link to post
Share on other sites
Thank you for your answers.

I was wondering a bit how that could be true. Then I decided to have a try for breaking the mathematics by force and as a result it seems that I ended up having the exactly same result formally expressed.

I began with a simple situation, where there are two equally massive points that are attached to each other by a weightless binding. When force (the thrust) is directed against one of them (thus being away from the center of mass), there are exactly three different forces present: 1) the external force pushing the first point, 2) a binding force that draws the first point towards the second point and 3) a binding force that draws the second point towards the first point. For the structure to not break the forces 2 and 3 must be equal with each other (or opposing when speaking of vectors).

Now if F[sub]1[/sub] is the external force, the task would be to calculate how much work the binding must do to keep up the structure. This force is F[sub]2[/sub] and it is directed from each point towards the other point. As a nice curiosity we can also see that calculating F[sub]2[/sub] would also tell us if the structure broke being the binding fragile. Now let the location of the point the external force is affecting be A, the other point B and the center of mass C = ½(A + B). After the force has affected the system for time t, the new locations of the points are A', B' and C'.

Now, F[sub]1[/sub] = ma and F[sub]2[/sub] = mb = mk[B[sub]x[/sub] - A[sub]x[/sub], B[sub]y[/sub] - A[sub]y[/sub]], where k is a variable, whose value we don't yet now. As both points have the mass ½m, we now can calculate the locations A' and B' as follows.

A' = A + 2at + 2bt
B' = B - 2bt

These simple formulas now give us

C' = ½(A' + B') = ½(A+ 2at + 2bt + B - 2bt) = ½(A + B + 2at) = ½(A + B) + at = C + at.

So this convinces me that the center of mass moves equally much regardless where the force is directed to.

Share this post

Link to post
Share on other sites
The remaining question now is how much rotation there will be within the system. I hoped I could calculate this by solving the variable k in my above analysis. And in fact I was able to solve it, but it turned out to have more complicated formula that I would hoped for. And given that it doesn't tell the amount of rotation directy, but I would need to distinct the linear and rotation components from it, it would be a mess.

However, after I have done this work I believe I am a little bit closer to the student work I mentioned in the opening post. This means that it might actually contain the correct formulas after all and I might even be able to verify this by comparing that and my own analysis numerically.

Share this post

Link to post
Share on other sites

I think you're overcomplicating things. Calculating linear and rotational movement is quite simple. You already know Newton:

Acceleration = force / mass


Acceleration = delta velocti / delta time


delta velocity = acceleration * delta time

and since

velocity = delta position / delta time


delta position = velocity * delta time

okay? The exact same goes for rotational movement, we just use different names:

angular acceleration = torque / moment of inertia

delta angular velocity = angular acceleration * delta time

delta angle = angular velocity * delta time

These articles should get you out of the woods:



Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!