Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- for (sp in springs) {
- var p1:Particle = sp.p1;
- var p2:Particle = sp.p2;
- var rijx = p2.x-p1.x;
- var rijy = p2.y-p1.y;
- var rij = fastSqrt(rijx*rijx+rijy*rijy);
- var dThreshold = sp.restLength*sBreakYield;
- if (rij > sp.restLength+dThreshold) {
- sp.restLength += plasticity*(rij-sp.restLength-dThreshold)*dt;
- } else if (rij < sp.restLength-dThreshold) {
- sp.restLength -= plasticity*(sp.restLength-dThreshold-rij)*dt;
- }
- var lij = sp.restLength;
- if (lij > sBreakLen) {
- springs.remove(sp);
- continue;
- }
- var rijx = p2.x-p1.x;
- var rijy = p2.y-p1.y;
- var rij = fastSqrt(rijx*rijx+rijy*rijy);
- if (rij > 0) {
- rijx /= rij;
- rijy /= rij;
- var d = kspring*(1-lij*hInverse)*(lij-rij);
- var dx = d*rijx*.5*dt*dt;
- var dy = d*rijy*.5*dt*dt;
- p1.x -= dx;
- p1.y -= dy;
- p2.x += dx;
- p2.y += dy;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement