Beispiel #1
0
            if i != j:
                if planet.distance2(i, j) < ((i.mass**(1 / 3)) +
                                             (j.mass**(1 / 3)))**2:
                    sum_mass = i.mass + j.mass
                    i.velocity[
                        0] = i.velocity[0] * i.mass / sum_mass + j.velocity[
                            0] * j.mass / sum_mass
                    i.velocity[
                        1] = i.velocity[1] * i.mass / sum_mass + j.velocity[
                            1] * j.mass / sum_mass
                    i.position[0] = (i.position[0] + j.position[0]) / 2
                    i.position[1] = (i.position[1] + j.position[1]) / 2
                    i.mass = sum_mass
                    planets.remove(j)
                    continue
                x, y = planet.calcGravityForce(i, j)
                a[0] += x
                a[1] += y
        i.proccessVel(a, dt / timeScale)
        i.proccessMove(dt / timeScale)
        pygame.draw.circle(disp, (255, 255, 255), i.position, i.mass**(1 / 3))

    #a = planet.calcGravityForce(earth, sun)
    #earth.proccessVel(a, dt/50)
    #earth.proccessMove(dt/50)

    #a = planet.calcGravityForce(sun, earth)
    #sun.proccessVel(a, dt/50)
    #sun.proccessMove(dt/50)

    #pygame.draw.circle(disp, (255, 255, 255), sun.position, sun.mass ** (1 / 3))