Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ws2223:protokoll_14.03.2023

Geschafft

Wir haben heute in unser Pygame Programm die Stöße der Teilchen Implementiert. Wir haben als Hauptursache des „Ineinander Klemmen“ mancher Teilchen als Ursache festgestellt, dass die betroffenen Teilchen meist in einander erzeugt wurden. Wir haben eine for-Schleifen Konstruktion geschrieben, bei der vor dem Aufruf der Main-Funktion für jedes Teilchen Paar überprüft wird, ob sie ineinander erzeugt wurden und wenn dies der Fall war auch entsprechend verschoben wurden.

  for b1 in balls:
      for i in range(balls.index(ball) + 1, len(balls)):
          sv_x = balls[i].x - b1.x
          sv_y = balls[i].y - b1.y
          distance = np.sqrt(sv_x**2 + sv_y**2)
          distance_soll = b1.radius + balls[i].radius
              
          if distance < distance_soll:
              while distance < distance_soll:
                  b1.x += sv_x  
                  b1.y += sv_y
                  

Nach der Implementierung dieser Konstruktion hat sich zwar ein Fester geöffnet, welches geöffnet blieb, in diesem Fenster ist nichts passiert; Es wurden keine Teilchen initialisiert. War haben uns der Implementierung der Wärmeenergie gewisser Wände angenommen. Dabei haben wir die border_colision-Funktion so abgeändert, dass die SPEED-Faktoren der mit den bestimmten Wänden stoßenden Teilchen um 0,5 erhöht wurde, so dass ein fester Betrag auf die Geschwindigkeit dieser Teilchen addiert wird und der Geschwindigkeitszuwachs nicht von der Ursprungsgeschwindigkeit der Teilchen abhängt. Diese Implementierung funktioniert soweit. Wir haben angefangen die Geschwindigkeitsverteilung zu implementieren, diese soll nach beenden der Simulation mit mathplotlib geplottet werden.

offene Fragen/Probleme

Das in Ineinanderhängen der Teilchen wäre immer noch zu beheben. Es ist noch geplant einen/mehrere Schieberegler zu implementieren, welche die Wärmeenergie der einzelnen Wänden regeln. Manchmal klappt die Kollision von 2 Teilchen noch nicht ganz richtig, wofür wir aber bis jetzt keine Erklärung haben. Außerdem wird noch kein Balkendiagramm, weshalb wir uns noch etwas mehr mit matplotlib auseinandersetzen müssen.

Quellen und Dateien

brown_pygame1.py.zip

ws2223/protokoll_14.03.2023.txt · Zuletzt geändert: 2023/04/05 14:27 von max.liebscher