PythonmaniaScript Different! |
|
|||||||
Navigation
Artikel zu Python
Warum Python? Hallo Welt Wie alt ist der Kapitän? Schmetterlingskurve Apfelmännchen Dancing Python User-Agenten fakeMail() Template Engine Python & XML (1) wxPython (1) wxPython (2) wxPython (3) How To's ftp mit Python Filedialog Piddle und Mac OS X XML-RPC Blogger API Zope und Python ZWiki und Plone Navigation und DTML »Last Update« Book Reviews Python und Tkinter Python Cookbook Alte Artikel O'Reilly MacPython & Tkinter (d) MacPython & Tkinter (e) Modul W Easy Dialogs File Dialogs Archiv Oktober 2009 Juni 2009 Mai 2009 April 2009 März 2009 Februar 2009 Januar 2009 Dezember 2008 November 2008 Oktober 2008 September 2008 August 2008 Juli 2008 Juni 2008 Mai 2008 April 2008 März 2008 Februar 2008 Januar 2008 Dezember 2007 November 2007 Oktober 2007 September 2007 August 2007 Juli 2007 Juni 2007 Mai 2007 April 2007 März 2007 Februar 2007 Januar 2007 Dezember 2006 November 2006 Oktober 2006 September 2006 August 2006 Juli 2006 Juni 2006 Mai 2006 April 2006 März 2006 Februar 2006 Januar 2006 Dezember 2005 November 2005 Oktober 2005 September 2005 August 2005 Juli 2005 Juni 2005 Mai 2005 April 2005 März 2005 Februar 2005 |
Anzeigen
|
|||||||
Grafische Ausgabe mit Python und TkinterObjekte und Grafiken (und erste Experimente)In diesem und dem nächsten Kapitel erfahren wir die wichtigsten Grundlagen der objektorientierten Programmierung. Und wir bekommen erste grafische Ausgaben mit Hilfe von Python und Tkinter. Die Butterfly-Kurve
Seit den glücklichen Zeiten mit meinem damals hochmodernen Atari ST habe ich die Schmetterlingskurve immer wieder als Test für die Grafikfähigkeit und Schnelligkeit von Programmiersprachen benutzt. Die Gleichung der Schmetterlingskurve sieht in Polarkoordinaten folgendermaßen aus: Die Gleichung ist hinreichend kompliziert um selbst in C geschriebene Routinen auf meinen damals unglaubliche 8 MegaBit schnellen Atari alt aussehen zu lassen. Rechenzeiten von 10 - 20 Minuten waren keine Seltenheit (einen Mac konnte ich mir damals nicht leisten). Und auf DOSen dachte man meisten noch gar nicht an Grafikfähigkeit: Windows kam gerade erst auf den Markt. Zuerst einmal importieren wir die notwendigen Module:
Dann definieren wir uns eine Klasse
Die Methode
Wir erzeugen in dieser Methode eine Zeichenfläche (in der Sprache von Tk ein
Es passiert eigentlich nichts aufregendes. In einer
und
In der ersten Anweisung erteilen wir Tk den Auftrag, nach jedem Zeichnen die Bildschirmasugabe zu aktualisieren. Wir können daher das Wachsen des Schmetterlings beobachten. Diese Anweisung verlangsamt allerdings die Berechnung erheblich. Sie können es selber ausprobieren. Wenn Sie diese Zeile auskommentieren, ist das Programm wesentlich schneller fertig. Dafür sehen Sie aber am Anfang aber auch nur auf eine leere Fläche und - schwupps - auf einmal ist der komplette Schmetterling da.
Die zweite Anweisung nutzt die Möglichkeit des Tk-Toolkits, Widgets zur Laufzeit zu verändern. In unserem Falle schreiben wir das Kommando »Quit« in den Button und ändern das Bindung an eine Methode auf die Methode
Das ist unsere gesamte Klassendefinition. Der Rest des Programms ist wie gehabt: Wir erklären Tk zur Wurzel unseres Widget-Baumes, vergeben eine Titelzeile für unser Fenster und erzeugen eine Instanz der Klasse Butterfly. Und zum Schluß rufen wir die Hauptschleife von Tk auf:
Und so sieht dann unser fertiges Programm aus: Ist das nicht ein wunderschöner Schmetterling, den wir da mit nur ganz. wenigen Programmzeilen hingezaubert haben? Und schieben Sie ruhig auch einmal ein anderes Fenster über unser Schmetterlingsnest. Um das Neuzeichnen brauchen wir uns nicht zu kümmern, all dies erledigt Tk für uns. Um die Formel verstehen zu können empfiehlt [WAGO93], nacheinander folgende Formeln plotten zu lassen:
Die Schmetterlingskurve und ähnliche Kurven wurden von Temple Fay an der Universität von Southern Mississpi entwickelt. Sie eignen sich vorzüglich zum Experimentieren. So weist [PICK92], S. 41ff. darauf hin, daß die Kurve eine bedeutend größere Wiederholungsperiode aufweißt. Sie sind aufgefordert, auch damit zu experimentieren. Interessante Vergleiche mit der Originalschmetterlingskurve können Sie auch ziehen, wenn Sie mit experiemtieren. Im Gegensatz zu meinen alten Atari sind heutige Rechner hinreichend schnell, so daß Sie auf die Ausgabe nicht ewig warten müssen. Und Python unterstützt sie durch seine Objektorientierung dabei, daß Sie den einmal geschriebenen Programmcode wiederverwerten können. Literatur:
[FAY89]: Temple Fay: The Butterfly Curve, American Math. Monthly, 96(5); 442-443 Werbung: |
||||||||