def advance(self, dt, padding):
bodies = self.bodies
def calc_vel(i):
b1 = bodies[i]
for b2 in bodies:
d_pos = b1.pos.sub(b2.pos)
distance = d_pos.length() + padding
mag = dt / math.pow(distance, 3)
b1.vel = b1.vel.sub(d_pos.scale(b2.mass).scale(mag))
list(map(calc_vel, self.indices))
def update(body):
body.pos = body.pos.add(body.vel.scale(dt))
list(map(update, bodies))
评论列表
文章目录