schnelle Zeichenfläche (z.B. durch SDL) in wxPython

Plattformunabhängige GUIs mit wxWidgets.
Antworten
IoI
User
Beiträge: 68
Registriert: Dienstag 1. Dezember 2009, 11:39

Hallo zusammen,

ich überlege gerade wie ich eine kleine CAD Anwendung schreiben würde. Dafür würde ich gerne als "Rahmen" wxPython nutzen und dann eine Zeichenebene dort einfügen. Da ich weiß, dass die mitgelieferten Funktionen zum Zeichnen wahrscheinlich schnell am Ende sind (z.B. beim zoomen, aber spätestens bei 3D), hatte ich überlegt, dass man besser SDL oder das darauf basierende pygame nimmt.

Bevor ich aber den falschen Weg einschlage wollte ich zum einen fragen, wie ihr so etwas realisieren würde und zum anderen wie man das dann in wxPython einbindet.
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

the more they change the more they stay the same
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo IoI!

Vielleicht interessant für dich: http://www.python-forum.de/topic-16675.html

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
IoI
User
Beiträge: 68
Registriert: Dienstag 1. Dezember 2009, 11:39

mmh,

ganz schlüssig bin ich mir jetzt noch nicht. Vor allem weil ich eventuell auch noch ein bissen 3D zeichnen will (später zumindest, vorwiegend 2D).

Zu pycairo müsste ich erstmal testen, wie es sich bei Funktionen wie Zoomen oder Verschieben verhält. Ich habe bis jetzt nur statische Codeschnippsel gefunden bis auf http://paste.pocoo.org/show/90972/ . Gut wäre etwas vergleichbares zu sehen (mit Zoomen, Verschieben, Elementauswahl usw.).

Danke aber schon mal soweit :D
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Zu Cairo sind auch Beispiel in der wxPythonDemo
the more they change the more they stay the same
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

wxPython hat auch ein GLCanvas zum Einbinden von PyOpenGL. Ich hab's noch nie benutzt, aber ich wuerd's mir auf jeden Fall mal anschauen.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
IoI
User
Beiträge: 68
Registriert: Dienstag 1. Dezember 2009, 11:39

Ich hab jetzt mal etwas mit Cairo aus probiert. Im Bild unten werden bei wx.EVT_PAINT 7600 Lines und 2601 Arcs gezeichnet. Wie man sich sicher vorstellen kann dauert es etwas bis das Bild aufgebaut ist. Zusätzlich habe ich noch wx.FULL_REPAINT_ON_RESIZE im Style des Panels, um bei Größenänderung ein angepasstes Bild zu bekommen.

Für Aktionen wie Zoomen oder Verschieben ändert sich ja grundsätzlich das dargestellt Bild nicht, gibt es eine effizientere Möglichkeit das auszunutzen? So ist mir noch zu langsam und Geschwindigkeit wäre das Hauptziel, um ein bestehendes System abzulösen.

Bild

EDIT:
Hier vielleicht nochmal ein kleineres Beispiel ;)
Bild
Antworten