class Particle{ public float x, y; public float xprev, yprev; private float xt, yt; Particle(float xi, float yi, float xp, float yp){ x=xt=xi; y=yt=yi; xprev=xp; yprev=yp; } void update (Force F, float friction){ xt= (2.0f-friction)*x-(1-friction)*xprev+F.x; yt= (2.0f-friction)*y-(1-friction)*yprev+F.y; xprev=x; yprev=y; x=xt; y=yt; } void constrain(float m, float M, float r){ if(xM){ xt=xprev-x; x=2*M-x; xprev=x-r*xt; } if(yM){ yt=yprev-y; y=2*M-y; yprev=y-r*yt; } } }