{"id":18,"date":"2009-01-16T10:14:58","date_gmt":"2009-01-16T08:14:58","guid":{"rendered":"http:\/\/blog.familie-heming.de\/?p=18"},"modified":"2014-09-04T07:01:32","modified_gmt":"2014-09-04T06:01:32","slug":"pyobjvg-version-20","status":"publish","type":"post","link":"https:\/\/blog.familie-heming.de\/?p=18","title":{"rendered":"PyObjVG Version 2.0"},"content":{"rendered":"<p>Im Rahmen eines universit\u00e4ren Projektes habe ich ein <a href=\"http:\/\/www.python.org\" target=\"_blank\">Python<\/a>-Modul entworfen, welches Sch\u00fclerinnen und Sch\u00fclern erm\u00f6glicht, mit Hilfe von Python Vektorgrafiken zu erstellen. Dabei wurde keine grafische Benutzungsschnittstelle erzeugt, wie sie Vektorgrafikprogramme wie <a href=\"http:\/\/www.inkscape.org\/?lang=de\" target=\"_blank\">Inkscape<\/a> benutzen, sondern ein Klassenkonzept zum Erzeugen von grafischen Primitiven, welche nur \u00fcber passende Python-Befehle gesteuert wird.<\/p>\n<p>Sch\u00fclerinnen und Sch\u00fcler m\u00fcssen also beim Erzeugen eines Bildes Kenntnisse von den Attributen und Methoden der verschiedenen Klassen haben, als auch die syntaktischen Regeln der Programmiersprache Python einhalten.<\/p>\n<p>Um der fehlenden Anschaulichkeit dieser Art und Weise der Grafikerzeugung entgegenzuwirken, sind zwei Erweiterungen vorgesehen.<\/p>\n<ol>\n<li>Der Im- und Export von SVG-Dateien<br \/>\nDies ist zum einen die einzige M\u00f6glichkeit der Speicherung konstruierter Grafiken (neben in Python eingebauten Methoden zu Serialisierung von Objekten), zum anderen ist damit eine Br\u00fccke zur Darstellung von Daten mit Hilfe von XML gezeigt. Da g\u00e4ngige Browser einen Gro\u00dfteil der SVG-Spezifikation darstellen k\u00f6nnen, ist zumindest eine Anschaulichkeit des Konstruktionsergebnis gegeben.<br \/>\nW\u00e4hrend der SVG-Export recht einfach zu Implementieren war, stellt sich der SVG-Import als sehr komplex dar, weil die M\u00f6glichkeiten von PyObjVG im Vergleich zu SVG sehr reduziert sind. Der SVG-Import muss daher in weiteren PyObjVG Versionen stark \u00fcberarbeitet bzw. \u00fcberpr\u00fcft werden.<\/li>\n<li>Zeichnen mit Hilfe der Stifte-und-M\u00e4use-Bibliothek (vgl. <a href=\"http:\/\/blog.familie-heming.de\/?p=13\" target=\"_self\">Blog-Eintrag<\/a>)<br \/>\nEs wurde neben dem PyObjVG-Modul, welches ein in sich geschlossenes System zur Datenrepr\u00e4sentation darstellt, eine Erweiterung f\u00fcr die Stifte-und-M\u00e4use-Bibliothek (in der Python-Desktop-Version nach Ingo Linkweiler) implementiert, welches Vektorgrafikobjekte des PyObjVG-Moduls interpretiert und entsprechende Zeichenroutinen aufruft. Diese neue &#8222;Grafikzeichner&#8220;-Klasse ist angepasst an das Signalweiterleitungskonzept des PyObjVG-Moduls und kann daher zur automatisierten Verfolgung des Aussehen der Vektorgrafik genutzt werden.<\/li>\n<\/ol>\n<p>Das Projekt ist noch nicht beendet. Neben einer kleinen ToDo-Liste im Speziellen f\u00fcr den SVG-Import wurden noch keine gr\u00f6\u00dferen Testl\u00e4ufe durchgef\u00fchrt. Ein spezieller Punkt f\u00fcr die Zukunft, der hier noch anzumerken ist, ist derjenige, dass ich ebenfalls an einer Schnittstelle f\u00fcr die Stifte-und-M\u00e4use-Bibliothek auf Mobiltelefonen arbeite. Da zum Jahreswechsel eine erste Version einer Portierung der <a href=\"http:\/\/discussion.forum.nokia.com\/forum\/showthread.php?t=152969\" target=\"_blank\">Pygame-Bibliothek f\u00fcr PyS60 Systeme ver\u00f6ffentlich wurde<\/a>, werde ich diese vor der \u00dcberarbeitung meiner Alpha-Version noch testen, vielleicht bieten sich dort verbesserte M\u00f6glichkeiten.<\/p>\n<p>Zur Nutzung von PyObjVG auf Desktopsystemen werden folgende Teile ben\u00f6tigt<strong>.<br \/>\nUpdate:<\/strong> Nach \u00c4nderung der Lizenzbedingungen (vgl. <a href=\"http:\/\/blog.familie-heming.de\/?p=33\" target=\"_self\">Blog-Eintrag<\/a>) nun als <a href=\"http:\/\/blog.familie-heming.de\/?attachment_id=36\">Paket<\/a> verf\u00fcgbar.<\/p>\n<ul>\n<li>Das Modul PyObjVG 2.0<a href=\"http:\/\/blog.familie-heming.de\/wp-content\/uploads\/2009\/01\/pyobjvg.py\"><br \/>\n<\/a><\/li>\n<li>Das Toolkit ElementTree (nur f\u00fcr SVG-Import ben\u00f6tigt)<\/li>\n<li>Sumwrapper, Modifikation der SuM-Bibliothek, notwendig zur Nutzung der Klasse &#8218;Grafikzeichner&#8216;.<\/li>\n<li>Die Klasse Grafikzeichner als Schnittstelle zwischen PyObjVG und SuM<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Im Rahmen eines universit\u00e4ren Projektes habe ich ein Python-Modul entworfen, welches Sch\u00fclerinnen und Sch\u00fclern erm\u00f6glicht, mit Hilfe von Python Vektorgrafiken zu erstellen. Dabei wurde keine grafische Benutzungsschnittstelle erzeugt, wie sie Vektorgrafikprogramme wie Inkscape benutzen, sondern ein Klassenkonzept zum Erzeugen von &hellip; <a href=\"https:\/\/blog.familie-heming.de\/?p=18\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.familie-heming.de\/index.php?rest_route=\/wp\/v2\/posts\/18"}],"collection":[{"href":"https:\/\/blog.familie-heming.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.familie-heming.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.familie-heming.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.familie-heming.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=18"}],"version-history":[{"count":10,"href":"https:\/\/blog.familie-heming.de\/index.php?rest_route=\/wp\/v2\/posts\/18\/revisions"}],"predecessor-version":[{"id":184,"href":"https:\/\/blog.familie-heming.de\/index.php?rest_route=\/wp\/v2\/posts\/18\/revisions\/184"}],"wp:attachment":[{"href":"https:\/\/blog.familie-heming.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=18"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.familie-heming.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=18"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.familie-heming.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=18"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}