8 3D-Grafik mit VPython



Ähnliche Dokumente
So gehts Schritt-für-Schritt-Anleitung

So funktioniert das online-bestellsystem GIMA-direkt

Handbuch ECDL 2003 Basic Modul 6: Präsentation Diagramm auf einer Folie erstellen

Gruppenrichtlinien und Softwareverteilung

Mediator 9 - Lernprogramm

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Präventionsforum+ Erfahrungsaustausch. HANDOUT GRUPPEN-ADMINISTRATOREN Anlage zum Endnutzer-Handbuch. Stand: Änderungen vorbehalten

Microsoft Access 2010 Navigationsformular (Musterlösung)

Professionelle Seminare im Bereich MS-Office

Bedienungsanleitung für 3D PDF

Nutzung von GiS BasePac 8 im Netzwerk

Gezielt über Folien hinweg springen

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Wie halte ich Ordnung auf meiner Festplatte?

1. Allgemein Speichern und Zwischenspeichern des Designs Auswahl der zu bearbeitenden Seite Text ergänzen Textgrösse ändern 3

Teaser-Bilder erstellen mit GIMP. Bildbearbeitung mit GIMP 1

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Sehr geehrter Herr Pichler, liebe Mitschüler, heute möchte ich euch einen kleinen Einblick in die Welt von gmax geben.

Zahlen auf einen Blick

Lehrer: Einschreibemethoden

Der Kalender im ipad

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Massenversand Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Hinweise zum Übungsblatt Formatierung von Text:

Nach der Installation des FolderShare-Satellits wird Ihr persönliches FolderShare -Konto erstellt.

Erstellen eines Wordpress-Blogs

Dokumentenverwaltung im Internet

Microsoft Visual Studio Community 2015

Installation OMNIKEY 3121 USB

Menü auf zwei Module verteilt (Joomla 3.4.0)

Kreatives Gestalten mit Flash 5.0

Wie Sie mit Mastern arbeiten

Symbolbearbeitung mit EPLAN 5.60/5.70 DIC_***D.SYM

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Anleitung zur Verwendung der VVW-Word-Vorlagen

Anzeige von eingescannten Rechnungen

AutoCAD Dienstprogramm zur Lizenzübertragung

Her mit der Karte! fertige Folie. Inhalte. Masterfolie. Benötigte Hard- oder Software. Präsentationsprogramm

Anleitung. Verschieben des alten -Postfachs (z.b. unter Thunderbird) in den neuen Open Xchange-Account

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

Anleitung über den Umgang mit Schildern

Vektoren mit GeoGebra

Photopaint - Linsen. (Speichere deine Arbeit von Anfang an regelmäßig unter dem Namen Linsen.cpt )

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen.

1. Einführung. 2. Alternativen zu eigenen Auswertungen. 3. Erstellen eigener Tabellen-Auswertungen

4.1 Wie bediene ich das Webportal?

PowerPoint 2007 SmartArt-Grafiken erstellen und bearbeiten

Legen Sie auf der Festplatte (bspw. in ihrem Homeverzeichnis) einen Ordner Downloads an. Legen Sie in diesem Ordner einen Unterordner IrfanView an.

1 topologisches Sortieren

NOXON Connect Bedienungsanleitung Manual

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Installationsanleitung CLX.PayMaker Home

Drucken von Webseiten Eine Anleitung, Version 1.0

Satzhilfen Publisher Seite Einrichten

Animationen erstellen

Der neue persönliche Bereich/die CommSy-Leiste

3D-Konstruktion Brückenpfeiler für WinTrack (H0)

Ein Bild in den Text einfügen

Produktschulung WinDachJournal

Zur drittletzten Zeile scrollen

Schuljahreswechsel im Schul-Webportal

Word Aufbaukurs kompakt. Dr. Susanne Weber 1. Ausgabe, Oktober 2013 K-WW2013-AK

Medea3 Print-Client (m3_print)

Installationshinweise für OpenOffice Portable auf einem Wechseldatenträger Stand: 27. März 2003 LS Stuttgart, Kaufmännische ZPG

Erstellen von x-y-diagrammen in OpenOffice.calc

Menü Macro. WinIBW2-Macros unter Windows7? Macros aufnehmen

Programme im Griff Was bringt Ihnen dieses Kapitel?

Anleitung zum Öffnen meiner Fotoalben bei web.de

Bedienungsanleitung Albumdesigner. Neues Projekt: Bestehendes Projekt öffnen:

Handbuch ECDL 2003 Professional Modul 1: Textverarbeitung Absätze formatieren

A. Ersetzung einer veralteten Govello-ID ( Absenderadresse )

Bei der Installation folgen Sie den Anweisungen des Installations- Assistenten.

Erste Schritte mit

Microsoft Access 2013 Navigationsformular (Musterlösung)

Benutzerhandbuch DesignMaster II

STRATO Mail Einrichtung Mozilla Thunderbird

teamsync Kurzanleitung

Starten sie WordPad über das Startmenü von Windows. WordPad finden Sie im Ordner Zubehör.

Grundlagen geometrisches Zeichnen - CAD. E1: Grundlagen des geometrischen Zeichnens (14)

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

1. Einführung Erstellung einer Teillieferung Erstellung einer Teilrechnung 6

Gemeinsamer Bibliotheksverbund: Übertragung von Datenexporten für den Verbundkatalog Öffentlicher Bibliotheken

Installationsanleitung CLX.PayMaker Office

Digitalisieren im GeoBrowser und Exportieren als GPX-Datei

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

Bevor Sie mit dem Wechsel Ihres Sicherheitsmediums beginnen können, sollten Sie die folgenden Punkte beachten oder überprüfen:

Modellbildungssysteme: Pädagogische und didaktische Ziele

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

EasyProfil unter Windows 7 64-Bit Home Premium (Die Installation der VirtualBox und EasyProfil)

Nützliche Tipps für Einsteiger

Animierte Fotoshow mit Fotostory 3

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

TrueCrypt Anleitung: Datenschutz durch Festplattenverschlüsselung

Dazu stellen Sie den Cursor in die Zeile, aus der eine Überschrift werden soll, und klicken auf die gewünschte Überschrift.

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Beispiel des Zusammenführens der APV- Tabellen Stammdaten und Verlaufsdaten mithilfe von Access

Historical Viewer. zu ETC5000 Benutzerhandbuch 312/15

Festigkeit von FDM-3D-Druckteilen

Transkript:

8 3D-Grafik mit VPython In diesem Kapitel wird das Python-Erweiterungsmodul Visual-Python bzw. VPython vorgestellt. Mit VPython können interaktive und animierte 3D-Szenen erzeugt werden. Dreidimensionale computergrafische Modelle können zum Beispiel dazu benutzt werden, CAD-Modelle darzustellen (CAD: Computer Aided Design), oder physikalische Vorgänge durch Simulation zu visualisieren. In diesem Kapitel wird in das Modul Visual-Python oder kurz VPython eingeführt, mit dem der Programmierer auf einfache Weise dreidimensionale Objekte erzeugen kann. Anschließend können die so erzeugten Modelle betrachtet werden, in dem der Benutzer des Programms mithilfe der Maustasten dynamisch durch die Szene navigiert. Auch Computerspiele können mit VPython realisiert werden. VPython ist wirklich eine "pythonische" Lösung: so einfach und übersichtlich, dass selbst ein Programmieranfänger ansprechende dreidimensionale Szenen erzeugen kann. Deshalb ist das Motto von VPython "3D Programmierung für Normalsterbliche" (engl. 3D Programming for ordinary mortals). Häufig wird dieses Erweiterungspaket auch mit Visual bezeichnet. In diesem Buch soll aber der Begriff VPython benutzt werden, weil Visual-Python auch noch der Name einer Entwicklungsumgebung ist. Dies kann zu Missverständnissen führen. 8.1 Hinweise zur Installation Da VPython nicht zum Standardumfang von Python gehört, muss die Software zunächst heruntergeladen und installiert werden. Die VPython-Homepage mit Hinweisen zur Lizenz dieses Moduls ist unter der folgenden Webadresse zu finden: http:// vpython.org Dort gibt es auch eine Download-Seite. Wenn Sie unter MS-Windows arbeiten, können Sie die Installationsdateien mit einer Anleitung im PDF-Format von der folgenden Webadresse herunterladen: http://mbi-wiki.uni-wuppertal.de/python/python-buch/ Die Programmversion, die in diesem Buch verwendet wird, ist VPython 5.72. Hinweis Statt der Entwicklungsumgebung IDLE sollten Sie die folgenden Beispiele mit der Entwicklungsumgebung VIDLE erstellen und testen. VIDLE ist speziell für die Programmierung mit VPython erstellt worden. Nach der Installation von VPython sollten Sie das Icon zum Programmstart im Startmenü vorfinden. Am besten legen Sie eine Verknüpfung auf dem Desktop mit dem Namen VIDLE an.

216 8 3D-Grafik mit VPython 8.2 Szenen In VPython gibt es eine Reihe vordefinierter Grundkörper. Das folgende Programm erzeugt einen Quader bzw. einen Würfel durch Erzeugung eines Objektes der Klasse box. Dieses Objekt wird nach dem Programmstart in einem separaten Grafikfenster dargestellt (Abbildung 8.1). Wir nennen eine solche Darstellung eine Szene. Wenn Sie den Cursor in diesem Fenster platzieren, dann können Sie sich um diese Szene herumbewegen, in dem Sie die rechte Maustaste gedrückt halten und dabei die Maus ziehen. Halten Sie dagegen die rechte und die linke Maustaste gleichzeitig gedrückt, dann kann die Szene vergrößert oder verkleinert werden (zoomen). Die Position des Körpers bleibt dabei unverändert, lediglich das Sichtfenster wird verändert. from visual import * box() Abb 8.1 Quader im Grafikfenster Mit VPython kann also eine einfache 3D-Szene mit nur zwei Programmzeilen erstellt werden! Merke Um die Ansicht zu drehen, müssen Sie den Cursor in das 3D-Grafikfenster platzieren und gleichzeitig die Maus mit gedrückter rechter Maustaste bewegen. Das Vergrößern oder das Verkleinern der Szene (Zoomen) wird durch gleichzeitiges Drücken der linken und der rechten Maustaste möglich. Ein etwas komplexeres Programm soll nachfolgend betrachtet werden. Mit ihm wollen wir die wichtigsten Grundkörper, die VPython bereit hält, visualisieren.

8.2 Szenen 217 from visual import * #1 scene.width = scene.height = 600 #2 scene.background = color.white #3 scene.title = "Grundkoerper und Text" #4 scene.autocenter = True #5 b = box(pos=vector(0,3,0)) #6 s = sphere(pos=vector(3,3,0)) #7 c = cylinder(pos=vector(6,3,0)) #8 a = arrow(pos=vector(0,0,0)) #9 co = cone(pos=vector(3,0,0)) #10 e = ellipsoid(pos=vector(6,0,0)) #11 h = helix(pos=vector(0,-3,0)) #12 r = ring(pos=vector(3,-3,0)) #13 p = pyramid(pos=vector(6,-3,0)) #14 t = text(text="hallo",pos=vector(0,-6,0)) #15 Die Ausgabe dieses Programms ist in Abbildung 8.2 dargestellt. Zunächst muss der Modul visual (also VPython) importiert werden (#1). In den nachfolgenden Programmen wird diese Zeile weggelassen. Fügen Sie diese - wenn notwendig - hinzu. Zur Beeinflussung der 3D-Szene gibt es mehrere Attribute. Die Attribute scene.width und scene.height legen die Größe des Ausgabefensters in Pixeln fest. In diesem Fall werden horizontal wie vertikal 600 Bildpunkte vorgegeben (#2). Abb 8.2 Grundkörper und Text in VPython Der Hintergrund der Szenen ist standardmäßig schwarz. Die Farbe kann mit dem Attribut scene.background geändert werden. Hier wird ein weißer Hintergrund gesetzt (#3). Weitere Möglichkeiten sind: color.blue, color.yellow, color.red etc. Mit dem

218 8 3D-Grafik mit VPython Attribut scene.title kann ein Text vorgegeben werden, der als Titel des 3D- Ausgabefensters erscheint (#4). Um die ganze Szene in das Ausgabefenster einzupassen, kann das Attribut scene.autocenter auf True gesetzt werden (#5). Die Grafik zeigt die folgenden Grundkörper: Quader (#6), Kugel (#7), Zylinder (#8), Pfeil (#9), Kegel (#10), Ellipsoid (#11), Helix (#12), Ring (#13) und Pyramide (#14). Hinzu kommt noch das Textobjekt, mit dem Texte in eine Szene eingebaut werden können (#15). Mit dem Parameter pos wird die Position der Objekte festgelegt. Jedes Objekt wird einer Variablen zugewiesen (a,b,c,e,r usw.). Über diese Namen kann das Objekt später angesprochen werden. Das nachfolgende Beispiel zeigt, wie zwei Szenen mit verschiedenen Grundkörpern erzeugt werden können. Gleichzeitig wird in diesem Programm den Körpern eine Textur zugeordnet. Eine Textur ist ein Bild, das auf der Oberfläche des Körpers dargestellt wird. Damit scheint der Körper aus einem bestimmten Material zu bestehen. Bedenken Sie, dass noch eine import-anweisung eingefügt werden muss, damit das Programm lauffähig wird! p=vector(0,0,0) #1 scene.title = "Quader" #2 scene.background = color.white #3 Szene2 = display(title="kugel") #4 Szene2.background = color.yellow #5 scene.select() #6 a = box(pos=p,material=materials.wood) #7 Szene2.select() #8 b = sphere(pos=p,material=materials.marble) #9 Das Programm erzeugt die folgenden beiden Ausgabefenster (Abb. 8.3). Abb 8.3 Zwei Szenen mit Texturen (Materialien) Eine Szene namens scene ist vordefiniert. Wenn wir nur eine Szene darstellen wollen, brauchen wir sie nicht zu erzeugen. Diese Szene erhält den Titel "Quader" und eine weiße Hintergrundfarbe (#2,#3).

8.2 Szenen 219 VPython enthält eine Klasse zur Darstellung von Vektoren. Mit der Zuweisung p=vector(0,0,0) wird einer Variablen p der Nullvektor zugewiesen (#1). Damit wird später der Ursprungspunkt der geometrischen Objekte festgelegt (#7,#9). Neben dieser Standardszene können nun weitere Szenen erzeugt werden. Für jede Szene wird dann ein 3D-Ausgabefenster geöffnet. Mit der Funktion display() kann eine neue Szene eröffnet werden (#4). Gleichzeitig kann der Titel des Ausgabefensters angegeben werden. Die so erstellte Szene wird einer Variablen (hier: Szene2) zugewiesen, damit sie später über diese Variable angesprochen werden kann, um zum Beispiel ihre Hintergrundfarbe zu ändern (#5). In welcher der beiden Szenen werden geometrische Objekte erzeugt oder manipuliert? Dies kann der Programmierer dadurch bestimmen, dass er eine Szene zur aktiven Szene bzw. zur 'Szene in Bearbeitung' macht. Hierzu dient die Methode select(). Mit scene.select() wird also die Standardszene zur aktiven Szene (#6). Soll ein Objekt in der zweiten Szene erzeugt werden, so muss sie zuvor mit der Anweisung Szene2.select() aktiviert werden (#8). Bei der Erzeugung der Grundkörper wird ein optionaler Parameter material angegeben. Der Quader bzw. der Würfel erscheint aus Holz gemacht, weil die Zuweisung material = materials.wood verwendet wurde (#7). Die Kugel im zweiten Ausgabefenster wurde mit einer Textur belegt (#9), die eine Oberfläche aus Marmor simuliert (material = materials.marble). Einen Überblick über alle möglichen Texturen bzw. Materialien bietet das Demoprogramm material_test.py, das der Leser im Unterverzeichnis examples der VPython- Installation findet, z.b. in C:\Python26\Lib\site-packages\visual\examples. Abschließend soll noch kurz gezeigt werden, welche Szene sich ergibt, wenn der Befehl sphere(material=materials.earth) vor einem weißen Hintergrund der Szene ausgeführt wird. Die Kugel wird mit einem Bild unseres Heimatplaneten überzogen, das aus dem Weltraum aufgenommen wurde (Abb. 8.4). Beim Drehen der Szene mittels der rechten Maustaste entsteht das Gefühl, dass die Erde sich unter dem Betrachter hinweg dreht. Das ist gut für Raumfahrsimulationen geeignet.