def gridSystem(n=8): global euler, collisions, screen w, h = screen.get_size() xstep = w / float(n) ystep = h / float(n) positions = [] velocities = [] masses = [] for i in range(n): for j in range(n): positions.extend([i * xstep, j * ystep, 0.0]) velocities.extend([0.0, 0.0, 0.0]) masses.append(5.0 + N.random.random()) psystem = ParticleSystem(positions, velocities, masses) for i in range(n): for j in range(n): p1 = i + j * n p2 = i + (j + 1) * n p3 = (i + 1) + j * n p4 = (i + 1) + (j + 1) * n if j + 1 < n: psystem.computeForces.append( ("spring", p1, p2, 1.0, psystem.dist(p1, p2) * 1)) if i + 1 < n: psystem.computeForces.append( ("spring", p1, p3, 1.0, psystem.dist(p1, p3) * 1)) if i + 1 < n and j + 1 < n: psystem.computeForces.append( ("spring", p2, p3, 1.0, psystem.dist(p2, p3))) psystem.computeForces.append( ("spring", p1, p4, 1.0, psystem.dist(p1, p4))) #for i in range(n): #psystem.setVel(i, N.array((8.0, 8.0, 0.0))) #psystem.setVel(i+n, N.array((0.0, -10.0, 0.0))) psystem.incPos(n * n - 1, N.array((30.0, 30.0, 0.0))) return psystem
def gridSystem(n=8): global euler, collisions, screen w,h = screen.get_size() xstep = w/float(n) ystep = h/float(n) positions = [] velocities = [] masses = [] for i in range(n): for j in range(n): positions.extend([i*xstep, j*ystep, 0.0]) velocities.extend([0.0, 0.0, 0.0]) masses.append(5.0+N.random.random()) psystem = ParticleSystem(positions, velocities, masses) for i in range(n): for j in range(n): p1 = i+j*n p2 = i+(j+1)*n p3 = (i+1)+j*n p4 = (i+1) + (j+1)*n if j+1 < n: psystem.computeForces.append(("spring", p1, p2, 1.0, psystem.dist(p1, p2)*1)) if i+1 < n: psystem.computeForces.append(("spring", p1, p3, 1.0, psystem.dist(p1, p3)*1)) if i+1 < n and j+1 < n: psystem.computeForces.append(("spring", p2, p3, 1.0, psystem.dist(p2,p3))) psystem.computeForces.append(("spring", p1, p4, 1.0, psystem.dist(p1, p4))) #for i in range(n): #psystem.setVel(i, N.array((8.0, 8.0, 0.0))) #psystem.setVel(i+n, N.array((0.0, -10.0, 0.0))) psystem.incPos(n*n-1, N.array((30.0, 30.0, 0.0))) return psystem