package flare.physics { /** * Force simulating a spring force between two particles. This force * iterates over each Spring instance in a simulation and * computes the spring force between the attached particles. Spring forces * are computed using Hooke's Law plus a damping term modeling frictional * forces in the spring. * *

The actual equation is of the form: F = -k*(d - L) + a*d*(v1 - * v2), where k is the spring tension, d is the distance between * particles, L is the rest length of the string, a is the damping * co-efficient, and v1 and v2 are the velocities of the particles.

*/ public class SpringForce implements IForce { /** * Applies this force to a simulation. * @param sim the Simulation to apply the force to */ public function apply(sim:Simulation):void { var s:Spring, p1:Particle, p2:Particle; var dx:Number, dy:Number, dn:Number, dd:Number, k:Number, fx:Number, fy:Number; for (var i:uint=0; i