# Impulse based friction on line segment

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

## Recommended Posts

Trying to figure out the friction impulse to apply on a circle rolling down a line segment, I've read a lot of other threads and it seems like it's kind of similar to the elastic impulse:

 // nx & ny = contact normal // fE = elastic impulse // dx & dy = distance from center of mass to contact point var tx = -ny; var ty = nx; var tCross = dx*ty-dy*tx; var friction = .5; var fF = tx*c.vx+ty*c.vy; fF /= (c.inverseMass+(tCross*tCross)/c.momentOfInertia); var fx = (fE*nx)+(friction*fF*tx); var fy = (fE*ny)+(friction*fF*ty); // xy velocity + angular c.vx -= fx*c.inverseMass; c.vy -= fy*c.inverseMass; c.av -= (dx*fy-dy*fx)/c.momentOfInertia; 

This is following the same sort of "pattern" adapted for the angular force as the usual
j = -(1 + e)rV . n / (n . n(iM1) + (pv1 . n)^2 / I1)

However when it came to the implementation, the behaviour of it's a little.. strange. Here's a demo - http://www.fileize.com/view/9137d063-58a/
I've tried clamping the friction to be a limit based on the elastic impulse but that didn't really do much. Could anybody enlighten me as to where I've slipped up?

##### Share on other sites
Just as an update I figured out the cause of the problem, I was using the center of mass velocity as opposed to the contact point velocity.. silly. All fixed now!

• ### Game Developer Survey

We are looking for qualified game developers to participate in a 10-minute online survey. Qualified participants will be offered a \$15 incentive for your time and insights. Click here to start!

• 9
• 11
• 15
• 21
• 26