Esempio n. 1
0
from simphys.links import LinkCsteF, LinkRigid, LinkSpring
from simphys.world import World
from simphys.app import App


g = 9.81


monde = World(10, 10)
# m1=Mass(0.01,[6,6.5])
# m2=Mass(0.01,[5,5])
m2 = Mass(1, [6.5, 5])
m3 = Mass(1, [6.5, 4])
m4 = Mass(1, [7, 4], 0, [-10, 0])
m4.form.color = (0, 128, 255)
# t12=LinkRigid(m1,m2)
t23 = LinkRigid(m2, m3)
# t31=LinkRigid(m3,m1)
# monde.add_Mass(m1)
monde.add_Mass(m2)
monde.add_Mass(m3)
monde.add_Mass(m4)

monde.save_state()
newworld = World()
newworld.load_dico(monde.dico)
appli = App()
appli.add_World(newworld)
appli.set_speed(0.125)
appli.run()
Esempio n. 2
0
#Masses différentes
for i in range(N):
    angle=random.uniform(0,2*pi)
    norme=random.gauss(0,0.1)
    x=random.uniform(rayon,taillex-rayon)
    y=random.uniform(rayon,tailley-rayon)
    vx=norme*cos(angle)
    vy=norme*sin(angle)
    mass=random.gauss(5,2)
    if mass<1e-3:
        mass=1e-3 #mass minimale
    m=Mass(1,[x,y],0,[vx,vy])
    m.set_size(rayon*(mass)**(0.33))
    randcolor=(random.randint(0,255),random.randint(0,255),random.randint(0,255))
    m.form.color=randcolor
    while check_collision(monde,m):
        x=random.uniform(rayon,taillex-rayon)
        y=random.uniform(rayon,tailley-rayon)
        m.OM=pygame.math.Vector2((x,y))
    
    monde.add_Mass(m)


monde.disable_gravity()

appli=App()
appli.add_World(monde)
appli.set_speed(0.125)
appli.run()
quit()
Esempio n. 3
0
g = 9.81

m1 = Mass(1, [2, 5])
m1.form.R = 0.05

m2 = Mass(2, [3, 6], 0, [0, -0.5])
m2.form.R = 0.1
m2.form.color = (40, 128, 50)

m3 = Mass(3, [4, 6], 0, [0, 1.5])
m3.form.R = 0.1
m3.form.color = (255, 0, 128)

l = LinkSpring(m1, m2, 100, 0.8)
dist = norm(m1.OM - m3.OM)
l = LinkSpring(m1, m3, 1, dist)
dist = norm(m2.OM - m3.OM)
l = LinkRigid(m2, m3)

monde = World(6, 9)
#monde.g=0.1
monde.add_Mass(m1)
monde.add_Mass(m2)
monde.add_Mass(m3)

app = App()
app.add_World(monde)
app.set_speed(0.125)
app.run()
quit()