At 05:59 PM 04-04-04 -0500, you wrote: >At 04:53 PM 2004-04-01, straver@xxxxxxxxx wrote: >>I'm playing with a spring model but I have run into a trouble.=20 >>The trouble is that I want a dampning effect on the springs so=20 >>they don't go all crazy but I don't want any damping effect on=20 >>the gravity movement for example.=20 >>=20 >>I can't think of any way to seperate them.=20 > >As a recovering physicist, I can't resist replying. Have you tried just >introducing a "drag" force? Basically, just a force that is constant and >opposite of velocity. If velocity is zero, there is no drag. For more >complexity/realism, make the more proportional to velocity, or velocity to >1.5ish power (for air friction), or whatever. Wouldn't it be more realistic to make the friction force proportional to speed? Or for computational efficiency, just subtract a small percent of any velocity, every frame. grant >I'll try modifying the code to show what I mean: ><snip> >>/* apply forces */ >>for (int i = 0; i < (int)points.size(); i++) { >> point accel; > >// add drag >point dragForce; > >// start out opposite to velocity >dragForce.x = -points.at(i).veloc.x; >dragForce.y = -points.at(i).veloc.y; > >double v = sqrt( dragForce.x * dragForce.x + dragForce.y * dragForce.y); > >if (v > DRAG_TOLERANCE) >{ >// normalize >dragForce.x /= v; >dragForce.y /= v; > >// apply coefficient of drag >const double u = 0.1; >dragForce.x *= u; >dragForce.y *= u; >} > >> >> // acceleration >> accel.x = points.at(i).force.x / weight; >> accel.y = points.at(i).force.y / weight; ><snip> > >Peter Mikelsons >plm@xxxxxxxx >http://plm.snow.org/ >Snowbound > > > > > >