Java 3D Einstiegs-Tutorial Teil 1
|
|
|
- Helmut Thomas
- vor 10 Jahren
- Abrufe
Transkript
1 Java 3D Einstiegs-Tutorial Teil 1 Computergrafik - Übungen W. Kurth, E. Roth WS 2001/02 Java 3D: Application Programming Interface (API) für Java Erweiterung von Java um Klassenbibliotheken, die als Interface für ein 3D-Grafik- und Soundsystem dienen gehört zu den Java Media APIs (neben Java Shared Data Toolkit, Java Advanced Imaging, Java 2D, Java Media Framework etc.) Download: Java3D 1.2 API Specification (mit Einführung, Beschreibung der Klassen, Beschreibung der beim Download mitgelieferten Beispiele): systematische Klassendokumentation: Tutorial: siehe Ein Java 3D - Programm besteht (teilweise) aus Objekten der Java 3D - Klassen, die ein virtuelles Universum beschreiben, welches dann gerendert wird: Kern-Klassen (Java 3D core classes) in javax.media.j3d Hilfs-Klassen (utility classes) in com.sun.j3d.utils außerdem werden benutzt: java.awt (Abstract Windowing Toolkit) für die Ausgabe der gerenderten Ergebnisse javax.vecmath für Vektor- und Matrizenrechnung
2 typische Import-Statements für eine Java 3D - Anwendung: import java.applet.applet; import java.awt.borderlayout; import java.awt.frame; import java.awt.event.*; import com.sun.j3d.utils.applet.mainframe; import com.sun.j3d.utils.universe.*; import javax.media.j3d.*; import javax.vecmath.*; Java 3D benutzt das Szenengraph-Konzept aber erweitert gegenüber VRML 2 Arten von Beziehungen zwischen Java 3D-Klassen- Instanzen: Eltern-Kind-Beziehung (nicht verwechseln mit Vererbung!) entspricht children-relation in VRML Referenzierung: entspricht der Verwendung von Knoten in Feldern anderer Knoten in VRML, z.b. Felder material, proxy Szenengraph = gerichteter azyklischer Graph (DAG), bei Weglassen der Referenzierungskanten sogar ein Baum Wurzel des Szenengraphen: Locale-Objekt (spezifiziert Referenzpunkt im virtuellen Universum) jeder Blattknoten des Szenengraphen hat eindeutigen Pfad von der Wurzel (ohne Referenzierungskanten), dieser spezifiziert vollständig die Zustandsinformation des Blattknotens: Position, Orientierung, Größe. eine Reihe von Methoden wird bereitgestellt, um Szenengraphen zu manipulieren.
3 Konventionen für Szenengraph-Skizzen in den folgenden Beispielen: Beispiel eines Szenengraphen in Java 3D:
4 Die meisten Knoten eines Szenengraphen (außer der Wurzel: VirtualUniverse, und Locale) sind Instanzen (von Subklassen) der SceneGraphObject-Klasse. Ausschnitt aus der Klassenhierarchie von Java 3D: SceneGraphObject Node Group... Leaf... man beachte die Ähnlichkeiten, aber auch Erweiterungen gegenüber VRML! spezielle Group-Knoten (Subklassen von Group): BranchGroup (entsprechend Group-Knoten in VRML) TransformGroup (entspr. Transform-Knoten in VRML) Die BranchGroup-Klasse besitzt eine compile-methode, die vor dem Rendering des Szenengraphen angewendet werden kann. Aufruf dieser Methode überführt den gesamten darunterliegenden Teilbaum des Szenengraphen in eine interne Repräsentation für Java 3D, die ggf. optimiert ist.
5 Beispiel für effizientere Repräsentation in der internen Darstellung: Zusammenfassung von adjazenten Transform- Group- (TG-) Knoten Grundschema zur Erstellung von Java 3D - Programmen: 1. Erzeugen eines Canvas3D-Objekts (die Canvas3D-Klasse ist abgeleitet von der Canvas-Klasse des Abstract Windowing Toolkit (AWT)) 2. Erzeugen eines VirtualUniverse-Objekts 3. Erzeugen eines Locale-Objekts, dies wird verknüpft mit dem VirtualUniverse-Objekt 4. Erzeugen eines view branch-graphen ("rechter Flügel" des Szenengraphen): a. Erzeugen eines View-Objekts b. Erzeugen eines ViewPlatform-Objekts c. Erzeugen eines PhysicalBody-Objekts d. Erzeugen eines PhysicalEnvironment-Objekts e. Verknüpfung von ViewPlatform, PhysicalBody, PhysicalEnvironment und Canvas3D-Objekt mit dem View-Objekt 5. Erzeugen eines oder mehrerer content branch-graphen ("linker Flügel" des Szenengraphen) 6. Kompilieren dieser beiden branch-graphen 7. Einfügen beider Teilgraphen in das Locale-Objekt
6 Da wir den view branch-graphen nur in standardisierter, einfacher Form benutzen, können wir eine Utility für vereinfachte Generierung von Szenengraphen benutzen, die SimpleUniverse-Klasse (in com.sun.j3d.utils. universe). Durch Erzeugen eines SimpleUniverse-Objekts wird ein "minimales virtuelles Universum" bereitgestellt, das den Inhalt des gestrichelt berandeten Bereichs in Standardform bereitstellt: Damit vereinfacht sich das obige allgemeine Schema für die Programmerstellung zu: 1. Erzeugung eines Canvas3D-Objekts 2. Erzeugung eines SimpleUniverse-Objekts, das auf das vorher erzeugte Canvas3D-Objekt Bezug nimmt 2a. Anpassen des SimpleUniverse-Objekts 3. Konstruktion des content branch 4. Compilieren des content branch 5. Einfügen des content branch in das Locale-Objekt des SimpleUniverse-Objekts.
7 Erstes Beispielprogramm: Darstellung eines Würfels mit farbigen Seitenflächen, der um 2 Achsen gedreht wurde, damit 3 seiner Seitenflächen sichtbar sind (es wird ein ColorCube-Objekt verwendet, das schon als Utility bereitsteht) import java.applet.applet; import java.awt.borderlayout; import java.awt.frame; import java.awt.event.*; import com.sun.j3d.utils.applet.mainframe; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.geometry.colorcube; import javax.media.j3d.*; import javax.vecmath.*; public class FarbWuerfel1 extends Applet public FarbWuerfel1() setlayout(new BorderLayout()); Canvas3D canvas3d = new Canvas3D(null); add("center", canvas3d); BranchGroup szene = macheszenengraph(); szene.compile(); // Verwendung der Utility-Klasse // SimpleUniverse: SimpleUniverse universum = new SimpleUniverse(canvas3D); universum.getviewingplatform( ).setnominalviewingtransform(); universum.addbranchgraph(szene); } // end Konstruktor public BranchGroup macheszenengraph() BranchGroup objwurzel = new BranchGroup(); // Transformation, // Komposition von 2 Rotationen: Transform3D drehung = new Transform3D(); Transform3D drehung2 = new Transform3D();
8 drehung.rotx(math.pi / 4.0d); drehung2.roty(math.pi / 5.0d); drehung.mul(drehung2); TransformGroup objdreh = new TransformGroup(drehung); objdreh.addchild(new ColorCube(0.4)); objwurzel.addchild(objdreh); return objwurzel; } // end macheszenengraph-methode public static void main(string[] args) Frame frame = new MainFrame(new FarbWuerfel1(), 256, 256); } } // end class FarbWuerfel1 man beachte: als einziges zusätzliches import neben den oben schon angegebenen wird hier com.sun.j3d.utils.geometry. ColorCube gebraucht die Funktion main wird gebraucht, um das Programm als Anwendung laufen zu lassen (die Klasse Applet stellt die Fensterverwaltung bereit) im Konstruktor von FarbWuerfel1 wird das oben angegebene vereinfachte Schema der Szenenerstellung abgearbeitet dieser Teil kann für die meisten weiteren Beispiele übernommen werden die Konstruktion des content branch ist in die Methode macheszenengraph ausgelagert es gibt Transform3D-Objekte, die keine Knoten sind, sondern nur zu deren Spezifikation (nämlich von TransformGroup-Knoten) benötigt werden diese entsprechen geometrischen (affinen) Transformationen und verfügen über eine Methode mul zur Komposition (hier für die Nacheinanderanwendung der beiden Rotationen) addchild ist die Methode von Group-Knoten, um Kindknoten anzufügen
9 am Schluss wird die Wurzel des zusammenhängenden content branch an den Konstruktor zurückgegeben und wird dort mit addbranchgraph eingebaut. Das Ergebnis sollte etwa so aussehen (Fensterlayout möglicherweise betriebssystemabhängig): dem Beispiel zugrundeliegender Szenengraph:
10 Capabilities Im Vergleich zu VRML ist Java 3D besser abgesichert: Visuelle Objekte können zur Laufzeit nur verändert werden (z.b. in Animationen), wenn vorher entsprechende "Capabilities" gesetzt wurden. Jedes SceneGraphObject hat eine Liste von capability bits. Direkter Zugriff auf diese Tabelle (wird seltener gebraucht): Methoden von SceneGraphObject: void clearcapability(int bit) löscht das spezifizierte capability bit boolean getcapability(int bit) stellt das spezifizierte bit zur Verfügung void setcapability(int bit) setzt das spezifizierte bit intuitiverer Zugriff: <Instanz-Name>.setCapability (<Klassenname>.<capability-Name>) dabei ist <capability-name> einer der für die jeweilige Klasse vordefinierten capability-namen (in Großbuchstaben). Capabilities von Group: ALLOW_CHILDREN_EXTEND erlaubt das Anfügen neuer Kindknoten ALLOW_CHILDREN_READ ALLOW_CHILDREN_WRITE erlaubt die Änderung der Referenzen auf die Kindknoten (Überschreiben) Capabilities von TransformGroup: zusätzlich ALLOW_TRANSFORM_READ ALLOW_TRANSFORM_WRITE
11 Beispiel: TransformGroup drehobjekt = new TransformGroup(); drehobjekt.setcapability (TransformGroup.ALLOW_TRANSFORM_WRITE); generiert neue TransformGroup-Instanz und gibt die Möglichkeit, in Animationen ihre Parameter zu überschreiben. Shape3D-Objekte entsprechen den Shape-Knoten in VRML. Ihre Capabilities: ALLOW_GEOMETRY_READ ALLOW_GEOMETRY_WRITE ALLOW_APPEARANCE_READ ALLOW_APPEARANCE_WRITE ALLOW_COLLISION_BOUNDS_READ ALLOW_COLLISION_BOUNDS_WRITE Definition sichtbarer Objekte mit Shape3D Wie in VRML werden Geometrie und Erscheinungsbild durch Geometry- und Appearance-Knoten, auf die referenziert wird, näher spezifiziert.
12 Mögliche Aufrufe des Shape3D-Konstruktors: Shape3D() Shape3D(Geometry geometrieknoten) Shape3D(Geometry geometrieknoten, Appearance appknoten) Methoden zum Hinzufügen von entsprechenden Knoten, wenn der Shape3D-Knoten schon vorhanden ist: void setgeometry(geometry geometrieknoten) void setappearance(appearance appknoten) sowie entsprechende get-methoden (analog). Geometry und Appearance sind Subklassen von NodeComponent: Ausschnitt aus der Klassenhierarchie von Java 3D
13 Eigene, spezielle visuelle Objekte lassen sich als Subklasse von Shape3D selbst definieren und in Java 3D-Programmen benutzen, etwa nach folgendem Schema: public class SichtbaresObj extends Shape3D private Geometry sio_geom; private Appearance sio_app; public SichtbaresObj() sio_geom = erzeugegeometrie(); sio_app = erzeugeapp(); this.setgeometry(sio_geom); this.setappearance(sio_app); } private Geometry erzeugegeometrie() /* Code, um Default-Geometrie zu erzeugen */ } private Appearance erzeugeapp() /* Code, um Default-Erscheinungsbild zu erzeugen */ } } // Ende von SichtbaresObj-Klasse Die so def. SichtbaresObj-Klasse kann genauso einfach benutzt werden wie ColorCube im ersten Programmierbeispiel (s.o.). Wenn z.b. objwurzel eine Instanz von Group ist, erzeugt der folgende Code ein SichtbaresObj und fügt es als Kindknoten im Szenengraph an objwurzel an: objwurzel.addchild(new SichtbaresObj() );
14 Bei Verwendung "vordefinierter" Möglichkeiten gibt es drei Varianten der Geometrie-Spezifikation in Java 3D: Verwendung von Geometrie-Primitiven Verwendung von boundary-representation-objekten (analog zu IndexedLineSet etc. in VRML) Verwendung eines geometry loader zum Laden von Objekten aus anderer Software / anderen Spezifikationssprachen Verfügbare Loader: Verwendung geometrischer Primitive: Wie in VRML gibt es Box, Cone, Cylinder und Sphere. Die Parameter unterscheiden sich etwas. Box, Cone und Cylinder setzen sich (intern) aus mehr als einem Shape3D-Objekt zusammen. Package: com.sun.j3d.utils.geometry
15 Einordnung in die Klassenhierarchie: Box: Default-Seitenlänge 2, Positionierung mit dem Mittelpunkt im Zentrum des Koordinatensystems. Konstruktor-Aufrufe: Box() Box(float xdim, float ydim, float zdim, Appearance app) Cone: Default-Radius 1, Höhe 2, Zentrum im Mittelpunkt der bounding box, Zentralachse = y-achse. Konstruktor-Aufrufe: Cone() Cone(float radius, float hoehe) Cylinder: Defaults wie für Cone. Konstruktor-Aufrufe: Cylinder() Cylinder(float radius, float height, Appearance app)
16 Sphere: Default-Radius 1, Mittelpunkt im Zentrum des Koordinatensystems. Konstruktor-Aufrufe: Sphere() Sphere(float radius) Sphere(float radius, Appearance app) Verknüpfung mit einem Appearance-Knoten bei schon instanziiertem Objekt (für Box, Cone, Cylinder und Sphere): Methode void setappearance(appearance app) Zugriff auf die Einzelkomponenten (Seitenflächen) dieser "Primitiv-Objekte": Methode Shape3D getshape(int id) id ist ein Index, der festlegt, welche Einzelkomponente ausgewählt wird. Verknüpfung von Appearance mit nur einer Einzelkomponente: void setappearance(int id, Appearance app)
17 Beispiel-Programm: Erzeugung einer Jojo-Figur aus 2 Kegeln Zugehöriger Szenengraph: Die Strukturen innerhalb der inneren Rechtecke (Cone object) werden im Programm nicht explizit konstruiert. Die Struktur innerhalb des äußeren Rechtecks wird im Beispielprogramm durch "kegeljojo" referenziert (man könnte hierfür eine neue Klasse definieren, das ist im Beispielprogramm nicht geschehen):
18 import java.applet.applet; import java.awt.borderlayout; import java.awt.frame; import java.awt.event.*; import com.sun.j3d.utils.applet.mainframe; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.geometry.cone; import javax.media.j3d.*; import javax.vecmath.*; public class Jojo1 extends Applet public Jojo1() setlayout(new BorderLayout()); Canvas3D canvas3d = new Canvas3D(null); add("center", canvas3d); BranchGroup szene = macheszenengraph(); szene.compile(); SimpleUniverse univ = new SimpleUniverse(canvas3D); univ.getviewingplatform( ).setnominalviewingtransform(); univ.addbranchgraph(szene); } // end Konstruktor public BranchGroup macheszenengraph() BranchGroup objwurzel = new BranchGroup(); BranchGroup jojo = kegeljojo(); objwurzel.addchild(jojo); return objwurzel; } // end macheszenengraph-methode public BranchGroup kegeljojo() BranchGroup jojobg = new BranchGroup(); Transform3D dreh = new Transform3D(); Transform3D verschieb = new Transform3D(); Appearance jojoapp = new Appearance(); dreh.rotz(math.pi/2.0d); TransformGroup jojod1 = new TransformGroup(dreh);
19 verschieb.set(new Vector3f(0.1f, 0f, 0f)); TransformGroup jojov1 = new TransformGroup(verschieb); Cone kegel1 = new Cone(0.6f, 0.2f); kegel1.setappearance(jojoapp); jojobg.addchild(jojov1); jojov1.addchild(jojod1); jojod1.addchild(kegel1); dreh.rotz(-math.pi/2.0d); TransformGroup jojod2 = new TransformGroup(dreh); verschieb.set(new Vector3f(-0.1f, 0f, 0f)); TransformGroup jojov2 = new TransformGroup(verschieb); Cone kegel2 = new Cone(0.6f, 0.2f); kegel2.setappearance(jojoapp); jojobg.addchild(jojov2); jojov2.addchild(jojod2); jojod2.addchild(kegel2); jojobg.compile(); return jojobg; } // end kegeljojo public static void main(string[] args) Frame frame = new MainFrame(new Jojo1(), 500, 400); // x=500, y=400: Fenster-Ausmasse (Pixel) } } // end class Jojo1
20 Ergebnis:
Java 3D Einstiegs-Tutorial Teil 3
Navigation mit der Maus Java 3D Einstiegs-Tutorial Teil 3 Computergrafik - Übungen W. Kurth, E. Roth WS 2001/02 Java 3D eröffnet mehrere Möglichkeiten, sich mittels Maus- Eingaben im virtuellen Raum zu
Einführung in Java3D
Einführung in Java3D SS05 Ashraf Abu Baker [email protected] Varrentrappstr. 40-42 60486 Frankfurt am Main Raum 218 Java 3D ist eine high level Interaktive 3D Graphik-API (Application Programming
Java: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
Einige weitere Fähigkeiten und Anwendungsbeispiele
Java3D Eine Einführung Was ist Java3D Ansicht (Viewing Model) Sichtbare Objekte Animationen und Interaktionen Einfaches Beispielprogram Einige weitere Fähigkeiten und Anwendungsbeispiele Was ist Java3D?
Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
Programmieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
Aktuelle Binaries: Version 1.5.2; download: https://java3d.dev.java.net/binary-builds.html. + Visual Toolkit (VTK -> KITWARE)
3. Java 3D 3.1 Grundlagen - Hierarchie von Java-Klassen, die eine Schnittstelle zur Darstellung und Interaktion von dreidimensionalen grafischen Szenen bilden. - Die geometrischen Objekte werdenin einem
Der Szenegraph. Im Folgenden eine kurze Beschreibung der wichtigsten Knoten des Szenegraphen:
Java 3d Java3D ist eine Bibliothek von Java Klassen zur Darstellung dreidimensionaler Graphik innerhalb von Java Applikationen und Applets. Die Struktur der darzustellenden Szene wird durch das Aufbauen
5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:
Assoziation und Aggregation
Assoziation und Aggregation Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Verstehen der Begriffe Assoziation und Aggregation Implementierung von Assoziationen in Java schreiben
Objektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
5. Abstrakte Klassen
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,
B6. 3D-Computergrafik mit Java
B6. 3D-Computergrafik mit Java B6.1 Grundlagen der 3D-Computergrafik (teilweise Wiederholung zu Vorlesung Digitale Medien) B6.2 Einführung in Java 3D B6.3 Animation B6.4 Geometrie, Material, Beleuchtung
Innere Klassen in Java
Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird
Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur
Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22
Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften
Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Suchbäume Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative
Objektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
Einführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer
Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,
Klausur zur Einführung in die objektorientierte Programmierung mit Java
Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-
Objektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.
Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt
Kleines Handbuch zur Fotogalerie der Pixel AG
1 1. Anmelden an der Galerie Um mit der Galerie arbeiten zu können muss man sich zuerst anmelden. Aufrufen der Galerie entweder über die Homepage (www.pixel-ag-bottwartal.de) oder über den direkten Link
3D-Grafik und -Animation: Java3D
3D-Grafik und -Animation: Java3D Hauptseminar Virtuelle Präsenz Wintersemester 2003/2004 Marco Jahn Inhaltsverzeichnis 1 Einleitung... 3 2 Java3D Grundlagen... 3 2.1 Die Java3D API... 3 2.2 Aufbau eines
Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7
Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck
Prinzipien Objektorientierter Programmierung
Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................
Java 3D. Linien, Flächen und Objekte Axel Bartsch, Okt. 2002
Java 3D Linien, Flächen und Objekte Axel Bartsch, Okt. 2002 Virtual World Koordinaten System Grundlagen zur Definition visueller Objekte Shape3D Unterklasse der Leaf-Klasse Eigenschaften des visuellen
4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.
Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel
Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).
Paketdeklaration Paketdeklaration package Bezeichner ; Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Ein
Graphische Benutzungsoberflächen
Graphische Benutzungsoberflächen Graphische Benutzungsoberflächen (graphical user interfaces, GUI) dienen zur interaktiven Bedienung von Programmen, Ein- und Ausgabe mit graphischen Techniken und visuellen
Übung: Verwendung von Java-Threads
Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum
Software Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
Objektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
Einführung - Was ist Java3D?
Einführung - Was ist Java3D? - Java Package für interaktive 3D Grafik - High-level 3D Grafik API - Programmieren von interaktiven Anwendungen mit dreidimensionalen Inhalten - Nahtlose Integration in Java
Grundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
GUI Programmierung in Java
vs und niemals mischen! Daher muss man sich für eine Klasse entscheiden 1 (Abstract Window Toolkit) schwergewichtige Alle Elemente werden vom Betriebssytem gemalt sehen aus wie alle anderen Programme auf
Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.
In einer Website haben Seiten oft das gleiche Layout. Speziell beim Einsatz von Tabellen, in denen die Navigation auf der linken oder rechten Seite, oben oder unten eingesetzt wird. Diese Anteile der Website
Programmierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
Hilfe zur Urlaubsplanung und Zeiterfassung
Hilfe zur Urlaubsplanung und Zeiterfassung Urlaubs- und Arbeitsplanung: Mit der Urlaubs- und Arbeitsplanung kann jeder Mitarbeiter in Coffee seine Zeiten eintragen. Die Eintragung kann mit dem Status anfragen,
Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben
Sichtbarkeit & statische Methoden Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Nicht sichtbare Methoden Wollen Eltern bestimmte Methoden vor den
teischl.com Software Design & Services e.u. [email protected] www.teischl.com/booknkeep www.facebook.com/booknkeep
teischl.com Software Design & Services e.u. [email protected] www.teischl.com/booknkeep www.facebook.com/booknkeep 1. Erstellen Sie ein neues Rechnungsformular Mit book n keep können Sie nun Ihre eigenen
Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)
Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen
Einführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger [email protected] WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten
Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.
Kapiteltests zum Leitprogramm Binäre Suchbäume
Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm
Applet Firewall und Freigabe der Objekte
Hauptseminar Applet Firewall und Freigabe der Objekte Nachweis von Sicherheitseigenschaften für JavaCard Jin Zhou Ein Überblick über diesen Vortrag Applet Firewall Kontext JCRE Entry Point Objekt Shareable
Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000
Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,
Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.
Übersicht Struts Forms Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Allgemeines Autor: Sascha Wolski http://www.laliluna.de/tutorials.html
Software Engineering Interaktionsdiagramme
Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)
Abschnitt 12: Strukturierung von Java-Programmen: Packages
Abschnitt 12: Strukturierung von Java-Programmen: Packages 12. Strukturierung von Java-Programmen: Packages 12.1 Strukturierung durch Packages 12.2 Zugriffsspezifikationen 12.3 Zusammenfassung 12 Strukturierung
Vorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
Java Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI
Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer
Java Einführung Packages
Java Einführung Packages Inhalt dieser Einheit Packages (= Klassenbibliotheken) Packages erstellen Packages importieren Packages verwenden Standard Packages 2 Code-Reuse Einbinden von bereits (selbst-/fremd)
Leichte-Sprache-Bilder
Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen
Java Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
Professionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
Formale Spezialisierungstechniken. am Beispiel des binären Baums. Hybride Programmiersprachen Daniel Krompass Berlin, 2009
Formale Spezialisierungstechniken am Beispiel des binären Baums. Hybride Programmiersprachen Daniel Krompass Berlin, 2009 Spezialisierungsarten (Typbeziehungen erster Art) X stellt Methoden und Eigenschaften
Kurzeinführung Excel2App. Version 1.0.0
Kurzeinführung Excel2App Version 1.0.0 Inhalt Einleitung Das Ausgangs-Excel Excel-Datei hochladen Excel-Datei konvertieren und importieren Ergebnis des Imports Spalten einfügen Fehleranalyse Import rückgängig
Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X
Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X SwissMacMeeting #1 26. Juni 2004 Messeturm Basel http://mac.naepflin.com Was ist das Ziel dieses Kurses? Starthilfe Einblick in die Möglichkeiten,
Java Projekt: Tic Tac Toe + GUI
Java Projekt: Tic Tac Toe + GUI Rechnerpraktikum aus Programmierung im WS 2005/06 unter der Leitung von Dr. Michael Hahsler Tadeh Amirian (h0253821) 10.01.2006 1) Problemdefinition Beim TicTacToe Spiel
Java Einführung Collections
Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...
4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:
4. AUSSAGENLOGIK: SYNTAX 4.1 Objektsprache und Metasprache 4.2 Gebrauch und Erwähnung 4.3 Metavariablen: Verallgemeinerndes Sprechen über Ausdrücke von AL 4.4 Die Sprache der Aussagenlogik 4.5 Terminologie
5.2 Neue Projekte erstellen
5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort
Bilder zum Upload verkleinern
Seite 1 von 9 Bilder zum Upload verkleinern Teil 1: Maße der Bilder verändern Um Bilder in ihren Abmessungen zu verkleinern benutze ich die Freeware Irfan View. Die Software biete zwar noch einiges mehr
3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek
Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es
ODBC-Treiber 1. 1.1 Programmübersicht
1 O D B C - Treiber ODBC-Treiber 1 1.1 Programmübersicht Nach einer ausgiebigen Testphase wurde kürzlich der neue ODBC-Treiber freigegeben. Dieser ist somit ab der 2000-er-Version lizenzpflichtig und kann
Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2
Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Zur Erinnerung: Aufteilung der Schichten GUI Vorlesung 17: 3-Schichten-Architektur 2 Fachkonzept Fachkonzept - Datenhaltung Datenhaltung
Suche schlecht beschriftete Bilder mit Eigenen Abfragen
Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere
Kapitel 6. Vererbung
Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen
Schnittstelle DIGI-Zeiterfassung
P.A.P.A. die kaufmännische Softwarelösung Schnittstelle DIGI-Zeiterfassung Inhalt Einleitung... 2 Eingeben der Daten... 2 Datenabgleich... 3 Zusammenfassung... 5 Es gelten ausschließlich unsere Allgemeinen
188.154 Einführung in die Programmierung für Wirtschaftsinformatik
Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger
SEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
Wasserzeichen mit Paint-Shop-Pro 9 (geht auch mit den anderen Versionen. Allerdings könnten die Bezeichnungen und Ansichten etwas anders sein)
Wasserzeichen mit Paint-Shop-Pro 9 (geht auch mit den anderen Versionen. Allerdings könnten die Bezeichnungen und Ansichten etwas anders sein) Öffne ein neues Bild ca. 200 x 200, weiß (Datei - neu) Aktiviere
Binärdarstellung von Fliesskommazahlen
Binärdarstellung von Fliesskommazahlen 1. IEEE 754 Gleitkommazahl im Single-Format So sind in Gleitkommazahlen im IEEE 754-Standard aufgebaut: 31 30 24 23 0 S E E E E E E E E M M M M M M M M M M M M M
Einstieg in die Informatik mit Java
1 / 14 Einstieg in die Informatik mit Java Swing Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 14 1 Einführendes Beispiel 2 Eigenschaften von Swing 3 Typisches Swing-Applet
Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster
Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster by Ali Bastan Gliederung Grundlagen von Swing 1. Kurze Einleitung 2. Warum Swing, wenn es das AWT gibt? 3. Was ist Swing? 4. Merkmale von Swing 5.
WebService in Java SE und EE
Schlüsselworte Java, JAX-WS, JAX-RS, JAXB, XML. Einleitung WebService in Java SE und EE Wolfgang Nast MT AG Ratingen Es werden die Mölichkeiten von WebServices in Java SE und EE, mit SOAP und REST gezeigt.
Grafikausgabe mit dem Abstract- Windowing-Toolkit. Eine Einführung
Grafikausgabe mit dem Abstract- Windowing-Toolkit Eine Einführung Inhalt Einführung Grundlegende Eigenschaften des Abstract-Windowing- Toolkit (AWT) Grundlagen Grafikausgabe Linien zeichnen Rechtecke zeichnen
Anleitung über den Umgang mit Schildern
Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder
SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen
SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen Um die maximale Sicherheit für das Betriebssystem und Ihre persönlichen Daten zu gewährleisten, können Sie Programme von Drittherstellern
.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage
.htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess
Zählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)
1. Einführung: Über den ODBC-Zugriff können Sie bestimmte Daten aus Ihren orgamax-mandanten in anderen Anwendungen (beispielsweise Microsoft Excel oder Microsoft Access) einlesen. Dies bietet sich beispielsweise
Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff
Java Reflection Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Die Java Reflection API liefert per Introspection Informationen über Klassen => Meta-Daten.
Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.
Aufgabe 10 Binäre Bäume a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge, 28, 35, 31, 9, 4,, 17, 37, 25 ein. 1. Einfügen von : 3. Einfugen von 35: 2. Einfügen von 28: 28 28 10. Einfügen
2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE
2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht
Adobe Flash CS4»3D-Tool«
Flash Tutorial Philipp Nunnemann Adobe Flash CS4»3D-Tool«Im folgenden Tutorial könnt Ihr das»3d-tool«in Adobe Flash CS4 kennenlernen. Das Tool erlaubt euch, Objekte im dreidimensionalen Raum zu bewegen.
1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:
Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:
Wir gehen aus von euklidischen Anschauungsraum bzw. von der euklidischen Zeichenebene. Parallele Geraden schneiden einander nicht.
2 Ein wenig projektive Geometrie 2.1 Fernpunkte 2.1.1 Projektive Einführung von Fernpunkten Wir gehen aus von euklidischen Anschauungsraum bzw. von der euklidischen Zeichenebene. Parallele Geraden schneiden
Revit Modelle in der Cloud: Autodesk 360 Mobile
Revit Modelle in der Cloud: Autodesk 360 Mobile Die Präsentation Ihrer Revit Modelle kann auf unterschiedlichste Weise erfolgen. Diverse Cloud Plattformen bieten kostenlosen Speicherplatz und Freigabeoptionen
