Guest User

Untitled

a guest
Sep 13th, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. accelerate = ->
  2.     for a in [0...size-4] by 4
  3.         x1 = particles[a+0]
  4.         y1 = particles[a+1]
  5.         for b in [a+4...size] by 4
  6.             x2 = particles[b+0]
  7.             y2 = particles[b+1]
  8.             xd = x2-x1
  9.             yd = y2-y1
  10.             l2 = xd*xd + yd*yd
  11.             if l2 > nearest
  12.                 l = Math.sqrt(l2)
  13.                 xn = xd/l
  14.                 yn = yd/l
  15.                 acc = factor/l2
  16.                 xa = xn*acc
  17.                 ya = yn*acc
  18.                 particles[a+2] += xa
  19.                 particles[a+3] += ya
  20.                 particles[b+2] -= xa
  21.                 particles[b+3] -= ya
  22.     return
  23.  
  24. move = ->
  25.     for i in [0...size] by 4
  26.         x2 = particles[i+2]
  27.         y2 = particles[i+3]
  28.         xv = (x2 - particles[i+0])
  29.         yv = (y2 - particles[i+1])
  30.         l = Math.sqrt(xv*xv + yv*yv)
  31.         if l > limit
  32.             xv = (xv/l) * limit
  33.             yv = (yv/l) * limit
  34.  
  35.         x = x2 + xv
  36.         y = y2 + yv
  37.  
  38.         particles[i+0] = x - xv
  39.         particles[i+1] = y - yv
  40.         particles[i+2] = x
  41.         particles[i+3] = y
  42.     return
Add Comment
Please, Sign In to add comment