ich programmiere noch nicht sehr lang mit Python und bin eher unter Beginner einzuordnen.
Ich wollte gern meinen evolutionären Algorithmus oder besser dessen output grafisch anzeigen lassen und habe mich mit der Bibo graphics.py befasst. Diese über Pycharm installiert und ein kleinen Anzeigeprogramm geschrieben um zu testen wie es reagiert.
fall jemand die Bibo sucht ... einfach graphic py (ohne Punkt) suchen lassen!
hier ist die Doku dazu
https://mcsp.wartburg.edu/zelle/python/ ... /graphics/
Beim Programmstart funktioniert meines Erachtens alles gut, allerdings wird die anzeige sowie das Programm nach ca. 50 Schleifendurchgängen immer langsammer und langsamer. Woran kann das liegen?
Werden die Grafiken immer wieder oben drüber gezeichnet und die alten im Speicher belassen , so das irgendein speicher voll läuft?
Ich bin noch nicht so vertraut mit dem Debugger in PyCharm. Eigentlich bin ich mit einem Debugger und dessen Umgang gar nicht vertraut und würde dies gern ein wenig mehr lernen. Wie kann ich mir im Debugger den benutzten Speicher anzeigen lassen?
Kann sich bitte Jemensch mal den Code anschauen und mir sagen was ich da falsch mache und wie ich das Problem lösen kann?
Vielen Dank schon mal im Vorraus
In dem Code wird halt imme ein großes Viereck über die zuvor gezeichneten Parameter drüber gezeichnet da ich unter graphics.py keinen "Anzeigefush" gefunden habe. Wie umgeht man sowas ?
Hier jetzt der Code (ich denke es ist bad Coding):
Code: Alles auswählen
import numpy as np
import pandas as pd
from graphics import *
import random
desired_width = 320
pd.set_option('display.width', desired_width)
np.set_printoptions(linewidth=desired_width)
Zeile = 1
Anzahl_Parameter=20
WINDOWBREITE = 2000
WINDOWLÄNGE = 500
win = GraphWin("Strömungsröhre", WINDOWBREITE, WINDOWLÄNGE)
win.setBackground(color_rgb(0, 0, 0))
foods =[]
abstand=[]
X_Abstandsliste = np.array(np.empty([1, Anzahl_Parameter]))
i=0
population_groeße = (Zeile, Anzahl_Parameter)
while i <= 1000:
aRectangle = Rectangle(Point(0, 0), Point(WINDOWBREITE, WINDOWLÄNGE))
aRectangle.setFill(color_rgb(130, 0, 130))
aRectangle.draw(win)
win.setBackground(color_rgb(0, 0, 0))
for jam in range(Anzahl_Parameter):
foods = np.random.randint(low=0, high=(WINDOWLÄNGE/2), size=population_groeße)
abstand = np.random.randint(low=0, high=400, size=population_groeße)
X_Abstandsliste[0,jam] = jam *WINDOWBREITE/Anzahl_Parameter
print(foods)
print(abstand)
print(X_Abstandsliste)
for food_ind in range(Anzahl_Parameter):
pt0 = Point((X_Abstandsliste[0][food_ind])+25,(foods[0][food_ind]))
print("pt0")
print(pt0)
pt1 = Point((X_Abstandsliste[0][food_ind-1])+25,(foods[0][food_ind-1]))
print("pt1")
print(pt1)
pt2 = Point((X_Abstandsliste[0][food_ind-1])+25,0)
print("pt2")
print(pt2)
pt3 = Point((X_Abstandsliste[0][food_ind ]) + 25,0 )
print("pt3")
print(pt3)
aLine = Line(pt0, pt1)
aCircle = Circle(pt0, 10)
aPolygon = Polygon(pt0, pt1, pt2,pt3)
aCircle.setFill(color_rgb(255, 0, 0))
aLine.setFill(color_rgb(255, 0, 0))
aPolygon.setFill(color_rgb(0, 0, 255))
aCircle.draw(win)
if food_ind >0:
aLine.draw((win))
aPolygon.draw(win)
i+=1
print(i)
update(1000)
win.getMouse()
Vielen Dank und viele Grüße ins Forum