Hallo, ich bin auf der Suche nach einem Python-Modul mit dem ich möglichst schnell stumpf Pixel in einem Fenster setzen möchte. Ich habe es schon mit Pygame versucht, allerdings ist das viel zu langsam. Ich bräuchte am besten so nach 10-50 Millisekunden ein ausgefülltes Fenster. Da sich allerdings die Farbe verändert kann ich nicht blos ein großes Rechteck zeichnen. Kennt da jemand was besseres, schnelleres? Grüße OleL
Ole L. schrieb: > Ich bräuchte am > besten so nach 10-50 Millisekunden ein ausgefülltes Fenster. Ich würde so aus dem Bauch raus mal sagen daß enge Schleifen (Millionen von Iterationen aber nur triviales zu tun in jeder einzelnen Iteration, nun dann das ganze noch zeitkritisch) nicht unbedingt die Domäne einer interpretierten Hochsprache sind. Ich würde diesen einen Teil des Programms (also die ganze Schleife von oben links bis unten rechts) lieber komplett in C schreiben und DAS dann von Python aus einbinden/aufrufen.
:
Bearbeitet durch User
Mit interpretierten Sprachen wie Python sieht das schlecht aus. Da liegt doch jede elementare Aktion, wie etwa eine Wertzuweisung an eine Variable, im Bereich von etwa einer Mikrosekunde. Bei einem Fenster mit 10e6 Pixel wärst Du ja dann schon bei einer Sekunde. Natürlich ist das Setzen eines Pixels weit aufwendiger, geschieht aber bei Benutzung einer geeigneten Bibliothek in Maschienencode. Problem sind also die einzelnen Aufrufe aus Python. Wenn die Daten im vorherein bekannt sind, könntest Du natürlich Arrays übergeben. Aber du willst die Daten ja wohl irgendwie dynamisch erzeugen wollen, und da hast Du dann wieder ein Problem. Muss es denn Python sein? Es gibt heute ja genügend schnellere und auch "schöne" Sprachen. Sonst eventuell Cython oder PyPy?
Und was das Ausgeben der Pixel angeht: Du müsstest in ein Array schreiben und das Ganze dann erst anzeigen. Das ist normalerweise die schnellste Methode. In SFML z.B. über LoadFromPixels().
Wie werden die einzelnen Pixelfarbe berechnet? Ebenfalls in Python? Wie lange dauert diese Berechnung für ein komplettes Bild (ohne die Ausgabe in ein Fenster)? Weniger als 10 bis 50 ms?
Die erste Frage ist, ob wirklich alle Pixel einzeln "von Hand" gesetzt werden müssen. Darunter kann ich mir wenig vorstellen: Ole L. schrieb: > Da sich allerdings die Farbe verändert kann ich nicht blos ein großes > Rechteck zeichnen. Generell muss man eher selten die Pixel einzeln zeichnen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.