3D Programmierung mit Java

Größe: px
Ab Seite anzeigen:

Download "3D Programmierung mit Java"

Transkript

1 3D Programmierung mit Java Daniel F. Abawi Professur für Graphische Datenverarbeitung J. W. Goethe-Universität Fachbereich 12 Danksagung / Quellenangabe Die Basis für diesen Foliensatz wurde von Dr. Paul Grimm (FH Erfurt) mit freundlicher Genehmigung bereitgestellt Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 2 1

2 Ziele dieser Einführung Wie kann ich Java3D benutzen? Wo kann ich Informationen finden? Wo finde ich Beispiele? Welche Konzepte setzt Java3D um? Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 3 Einführung - Was ist Java3D? Java Package für interaktive 3D Graphik Szenengraph-basierte high-level 3D Graphik API Programmieren von interaktiven Anwendungen mit 3D Inhalten Nahtlose Integration in Java Kein Browser nötig (Applikationen) Applet-fähig Kompatibilität mit Java Webstart (JWS) Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 4 2

3 Was macht Java3D? Übernahme der Bilderzeugung: Szenenmanagement Verdeckungsrechnung Übernahme der Benutzerinteraktion Plattformunabhängiges API Implementierung für verschiedene Low-Level APIs (Open GL, Direct3D) Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 5 Was macht Java3D? Durchführung von Optimierungen Paralleles Rendern Nutzung von Hardwarebeschleunigung Reorganisation des Szenengraphen ( Zusatzinformationen können angegeben werden, die bei der Optimierung ausgewertet werden) Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 6 3

4 Szenengraphen in Java3D Java3D wertet Szenengraph-Beschreibung in separaten, asynchronen Threads aus Rendering von Graphik Rendering von Sound Animation Management der Eingabegeräte Event Erzeugung (z. B. bei Kollisionen) Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 7 Anwendungsbeispiele Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 8 4

5 Starten einer Java3D Anwendung? Standalone Starten wie jede andere Java Applikation Applet Java Plugin und Java3D wird benötigt Applet in eine WWW-Seite einbinden Java Webstart (online und offline) Installation von Java3D wird nicht vorausgesetzt Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 9 Nutzung von Java (und Java3D) Nutzung des Java-Interpreters java myprogram Nutzung des Java-Appletviewers appletviewer myprogram.html Nutzung des Java-Compilers: javac myprogram.java Die Benutzung einer Entwicklungsumgebung (z. B. Eclipse wird empfohlen Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 10 5

6 Installation von Java3D Mittlerweile gibt es eine Installationsroutine Bei manueller (und bei der automatisierten) Installation ist darauf zu achten, daß Java3D in das korrekte Verzeichnis kopiert wird (beachte Windows JRE / evtl. installierte JDKs) Bitte die Installationsanweisungen genau beachten! Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 11 Java3D in Web und Literatur Offizielle Java3D Homepage Download von Binaries und Beispielen Java3D Tutorial Java3D API Spezifikation Aktuell ist die Version 1.4.0_01 (hier zu verwenden) Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 12 6

7 Java3D in Web und Literatur (Teil 2) J3D.org (The Java3D Community Site) FAQs Loader für unterschiedliche 3D-Formate Tutorials Weitere sehr gute Einstiegshilfen Michael Pfeiffer (ausführlicher) Christopher Schnell und Sascha Strasser (sehr gutes Schnelltutorial) Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 13 Java3D im Einzelnen Aufbau einer einfachen Java3D-Anwendung mit einzelnen Objekten Gruppierung und Transformation Aufbau einer komplexen Szene mit mehreren Objekten und mit Animationen Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 14 7

8 Eine Applikation in Kürze Konstruktion einer virtuellen Welt, in der alle 3D Daten enthalten sind (z. B. BranchGroups, TransformationGroups, Shape3D, Geometry, Appearance, Light, Behavior etc.) Auswahl einer Kamera, um die 3D Daten zu betrachten Einfügen der 3D Inhalte in die Szene Hierarchische Anordnung der Objekte in einem Szenengraphen Beschreibung der Interaktionen Einbetten in eine Java-Anwendung Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 15 Minimalbeispiel (Teil 1/2) package startj3d; import java.applet.applet; import java.awt.borderlayout; import java.awt.graphicsconfiguration; import com.sun.j3d.utils.applet.mainframe; import com.sun.j3d.utils.geometry.colorcube; import com.sun.j3d.utils.universe.*; import javax.media.j3d.*; public class Minimalbeispiel extends Applet { private SimpleUniverse u = null; public BranchGroup createscenegraph() { BranchGroup objroot = new BranchGroup(); objroot.addchild(new ColorCube(0.4)); } return objroot; public Minimalbeispiel() { } Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 16 8

9 Minimalbeispiel (Teil 2/2) public void init() { setlayout(new BorderLayout()); GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration(); Canvas3D c = new Canvas3D(config); add("center", c); BranchGroup scene = createscenegraph(); u = new SimpleUniverse(c); u.getviewingplatform().setnominalviewingtransform(); } u.addbranchgraph(scene); public void destroy() { u.cleanup(); } public static void main(string[] args) { new MainFrame(new Minimalbeispiel(), 256, 256); } } Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 17 Aufbau eines Szenengraphen Erzeugen von Knoten Primitive myshape1 = new Box(); Primitive myshape2 = new Cone(); Gruppieren von Knoten BranchGroup mygroup = new BranchGroup( ); mygroup.addchild( myshape ); Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 18 9

10 Utility Klassen Utility Klassen bauen auf Java3D auf Vereinfachen oft auftretender Operationen: Aufbau einer virtuellen Welt Setzen der Kamera SimpleUniverse mysimple = new SimpleUniverse( mycanvas ); mysimple.addbranchgraph(mybranch); Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 19 SimpleUniverse Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 20 10

11 Einbetten in eine Java Anwendung Folgende Schritte sind notwendig: 1. Erzeugen eines Java AWT Frames 2. Setzen eine Java AWT Layouts 3. Erzeugen eines Canvas3D 4. Einfügen des Canvas3D Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 21 Einbetten in eine Java Anwendung public initializeuniverse() { Frame frame = new Frame( ); frame.setsize( 640, 480 ); frame.setlayout( new BorderLayout( ) ); GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration(); Canvas3D canvas = new Canvas3D(config); frame.add( "Center", canvas ); SimpleUniverse univ = new SimpleUniverse( canvas ); BranchGroup scene = createscenegraph(); univ.addbranchgraph( scene ); frame.show( ); } Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 22 11

12 Benötigte Java Packages (Beispiele) Java Packages import java.awt.*; Java3D Packages import javax.media.j3d.*; import javax.vecmath.*; Java3D Utility Packages import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.geometry.*; Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 23 Position Damit der Würfel sichtbar wird, muss er aus dem Ursprung verschoben werden (falls nicht die die Methode setnominalviewingtransform() angewendet wurde) TransformGroup tg = new TransformGroup(); objroot.addchild(tg); Transform3D t3d = new Transform3D(); t3d.set(new Vector3d (2,2,-5)); tg.settransform(t3d); tg.addchild(new ColorCube(0.4)); Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 24 12

13 Materialeigenschaften Zur Beschreibung der Materialeigenschaften muss das Appearance-Objekt entsprechend konfiguriert werden: Appearance app = new Appearance(); Material mm = new Material(); mm.setambientcolor(1.0f, 0.0f, 0.0f ); mm.setlightingenable(true); app.setmaterial(mm); myshape1.setappearance(app); Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 25 Licht Aufnahme einer Lichtquelle BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); Color3f ambientcolor = new Color3f(0.8f, 0.3f, 0.9f); AmbientLight ambientlightnode = new AmbientLight(ambientColor); ambientlightnode.setinfluencingbounds(bounds); mygroup.addchild(ambientlightnode); Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 26 13

14 Rückblick Darstellung von Graphik Primitiven Beispiel 1: Box Beispiel 2: Cone Einbettung in eine Java-Applikation Beschreibung der Materialeigenschaften Verschieben des Objekts Einfügen einer Lichtquelle Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 27 3D-Modelle Modelle sind Beschreibungen von Objekten Ein Shape3D-Knoten besteht aus Geometrie Appearance (Erscheinen) Shape3D( Geometry geometry, Appearance appearance ) Geometrie kann aus mehreren Teilen bestehen Appearance enthält verschiedene Attribute, die beschreiben wie die Geometrie gezeichnet wird Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 28 14

15 Elemente einer Geometrie Koordinaten: Position der Knoten im Raum Normalen (können auch automatisch berechnet werden): Nach außen orientierte Normale pro Knoten Farben: Farbe pro Knoten Textur-Koordinaten: Texel Position im Knoten Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 29 GeometryArray GeometryArray erbt von Geometry Ein GeometryArray Objekt hat vier Basistypen Punkte Linien Dreiecke Vierecke GeometryArray bietet set und get Methoden Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 30 15

16 Modelle sind facettiert Ideale Dreiecke und Vierecke Einseitige Primitive Reihenfolge der Eckpunkte bestimmt die Flächennormale Gegen den Uhrzeigersinn nach außen gerichtet (Beachtung der rechten Hand) Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 31 Beispiel eines Quadrats mit Punkten Point3f a = new Point3f (-width/2,-width/2,height/2); Point3f b = new Point3f (width/2,-width/2,height/2); Point3f c = new Point3f (width/2,width/2,height/2); Point3f d = new Point3f (-width/2,width/2,height/2); Point3f[] shape = new Point3f[4]; int z = 0; shape[z++] = a; shape[z++] = b; shape[z++] = c; shape[z++] = d; int[] stripcount = {4}; GeometryInfo gi = new GeometryInfo(GeometryInfo.POLYGON_ARRAY); GeometryArray ga = gi.getgeometryarray(); Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 32 16

17 Beispiel eines Quadrats mit einem QuadArray und Texturkoordinaten QuadArray rect = new QuadArray(4, GeometryArray.COORDINATES GeometryArray.TEXTURE_COORDINATE_2); Point3f p3f = new Point3f(width/2, -width/2, -height/2); rect.setcoordinate(0, p3f); p3f.set(-width/2, -width/2, -height/2); rect.setcoordinate(1, p3f); p3f.set(-width/2, width/2, -height/2); rect.setcoordinate(2, p3f); p3f.set(width/2, width/2, -height/2); rect.setcoordinate(3, p3f); TexCoord2f tc2f = new TexCoord2f(0, 0); rect.settexturecoordinate(0, 0, tc2f); tc2f.set(1, 0); rect.settexturecoordinate(0, 1, tc2f); tc2f.set(1, 1); rect.settexturecoordinate(0, 2, tc2f); tc2f.set(0, 1); rect.settexturecoordinate(0, 3, tc2f); Shape3D rectobj = new Shape3D(rect); Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 33 Appearance Kontrolle über den Rendering-Prozeß Farbe Transparenz Beleuchtungsmodell Linieneigenschaften Und viele andere! Alle Eigenschaften sind in der Appearance-Klasse und ihren Komponenten enthalten Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 34 17

18 Beispiel für verschiedene Appearance Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 35 Andere Eigenschaften Das TransparencyAttributes Objekt steuert die Tranzparenz ( ) PointAttributes und LineAttributes enthalten Punktgröße und Liniendicke PolygonAttributes regeln culling und Fülleigenschaften (Punkt, Linien, Fläche) RenderingAttributes steuern im Depth- und Alpha-Buffer Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 36 18

19 Texturen Java 3D hat zwei Typen von Texturen Texture2D für Bilder Texture3D für Volumentexturen Beide Typen beinhalten Texturdaten Filtermodi Wrappingmodi Berandungsfarbe Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 37 Texturen TextureLoader loader = new TextureLoader("stripe.jpg", this); ImageComponent2D image = loader.getimage(); Texture2D texture = new Texture2D(); texture.setimage(0, image); Appearance appear = new Appearance(); appear.settexture(texture); Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 38 19

20 Weiteres Vorgehen Bis jetzt: Aufbau einzelner 3D Objekte Ab jetzt: Integration mehrerer 3D Objekte Gruppierung von Objekten Transformation von Objekten Bewegung von Objekten Lichtquellen Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 39 Live Nodes BranchGraph, der einem Locale hinzugefügt wird ist live, d.h. er kann dargestellt werden BranchGroup mybranch = new BranchGroup( ); mybranch.addchild( myshape ); mylocale.addbranchgraph( mybranch ); boolean islive() Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 40 20

21 Compiled Nodes / Capabilities BranchGroup kann kompiliert (optimiert) werden void compile(); Beachte: compile bevor live Capabilities geben an, was in einem Szenengraph noch gelesen und verändert werden darf, nachdem der Szenengraph compiled oder live ist Capabilities wirken auf Optimierung Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 41 Capabilities (1) Methoden für SceneGraphObject void setcapability( int bit ) void clearcapability( int bit ) boolean getcapability( int bit ) Capabilities gibt es für jeden Knoten In jedem Knoten gibt es Capabilities für die Attribute Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 42 21

22 Capabilities (2) Beispiele von Shape3D: ALLOW_APPEARANCE_READ ALLOW_APPEARANCE_WRITE ALLOW_GEOMETRY_READ ALLOW_GEOMETRY_WRITE myshape.setcapability( Shape3D.ALLOW_APPEARANCE_WRITE ); Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 43 Gruppen in Java 3D Unterschiedliche Typen Group BranchGroup OrderedGroup / DecalGroup SharedGroup Switch TransformGroup Alle Gruppen haben Kinder Modelle, Lichtquellen, Geräusche, Verhalten Eigenschaften von Gruppen Hat genau einen Vater Beliebig viele Kinder Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 44 22

23 BranchGroup Ein BranchGroup Objekt ist ein Teilbaum des Szenengraphen Kann an ein Locale angehängt werden Kann compiled werden Kann als Kind einer anderen Gruppe verwendet werden Kann zur Laufzeit verschoben oder gelöscht werden Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 45 TransformGroup Transformationen sind Translation, Rotation und Skalierung Transformationen akkumulieren sich bei der Traversierung des Szenengraphen Die Transformationen tiefer im Graph werden zuerst ausgeführt Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 46 23

24 Transformation Alle Modelle werden bezüglich der Weltkoordinaten plaziert Ein TransformGroup Objekt erlaubt die Verwendung eines neuen Koordinatensystems relativ zum Vater Verändert man die TransformGroup, so bewegen sich auch die Modelle in der Gruppe Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 47 Transform3D Ein Transform3D Objekt beschreibt die Transformation einer TransformGroup Dargestellt als 4x4 Double Matrix Beispiel: Transform3D t = new Transform3D(); t.set(scale, new Vector3d(xpos, ypos, 0.0)); Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 48 24

25 Beispiel eines Szenengraph Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 49 Verhalten (Behavior-Klassen) Programmierbarkeit Verhalten sind Java-Methoden Effizienz Java3D führt Verhalten nur aus wenn nötig Komposition Verhalten werden mit Objekten verbunden Verhalten können nebeneinander existieren und dynamisch verändert werden Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 50 25

26 Vorgefertigte Behavior Interpolatoren Alpha Rotation Position Pfad Billboards Level of Detail Knoten Mousebehavior Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 51 Verhalten (Behavior-Klassen) Jedes Verhalten enthält: Code zur Ausführung in einer processstimulus Methode wakeupon Bedingungen, um zu steuern wann der Code durchgeführt wird Bounding Information für die Ausführung (Bereich spezifizieren) Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 52 26

27 Verhalten - Bounds Verhalten werden nur durchgeführt, wenn sich Sichtradius vom Betrachter und Bounding-Objekt des Verhaltens schneiden Bounding-Objekt Kugel, Würfel, Polyeder etc. Default: Kein Bounding Objekt (deswegen auch keine Durchführung des Verhaltens) Die Position des Verhaltens im Szenengraph bestimmt den Ursprung des Bounding-Objekts Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 53 Verhalten - Wakeup Ein Verhalten wird nur durchgeführt, wenn die Wakeup- Kriterien erfüllt sind Ein gewisse Zeit ist verstrichen Ein Event wird generiert Transformation wird durchgeführt Kollision oder Nähe Kriterien können durch logische Operationen verbunden werden Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 54 27

28 Beispiel eines Behaviors class WakeUpAfterMovement extends Behavior { protected WakeupCondition m_wakeupcondition = null; public WakeUpAfterMovement() { } public void initialize() { wakeupon(new WakeupOnElapsedTime(1000)); } public void processstimulus(java.util.enumeration criteria) { while (criteria.hasmoreelements()) { WakeupCriterion wakeup = (WakeupCriterion) criteria.nextelement(); } if (wakeup instanceof WakeupOnElapsedTime) { System.out.println( 1000 ms sind vorbei! "); } } } Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 55 RotationInterpolator Alpha spinalpha = new Alpha( -1,4000 ); // unendlich oft, 4000 ms Dauer RotationInterpolator spinner = new RotationInterpolator( spinalpha, trans ); spinner.setschedulingbounds( new BoundingSphere( new Point3d( ), ) ); trans.addchild( spinner ); Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 56 28

29 MouseBehavior TransformGroup objtrans = new TransformGroup(); MouseRotate behavior = new MouseRotate(); behavior.settransformgroup(objtrans); objtrans.addchild(behavior); behavior.setschedulingbounds(bounds); MouseZoom behavior2 = new MouseZoom(); MouseTranslate behavior3 = new MouseTranslate();... Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 57 Lichtquellen Java3D bietet folgenden Typen Ambientes Licht: AmbientLight Gerichtetes Licht: DirectionalLight Punktlichtquelle: PointLight Attribute von allen Lichtquellen Status (aus/an) Farbe Bounding-Volumen Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 58 29

30 Definition von Lichtquellen Ambientes Licht: AmbientLight( Color3f color ) Gerichtetes Licht: DirectionalLight(boolean lighton, Color3f color, Vector3f direction) Punktlichtquelle: PointLight(Color3f color, Point3f position, Point3f attenuation) Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 59 Picking Java3D bietet Möglichkeiten zur Auswahl von Objekten des Szenegraphen Ein PickShape wird mit BranchGroups geschnitten BranchGroups enthalten Methoden zur Auswertung des Picking Verschiedene Kriterien bei der Auswahl Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 60 30

31 Picking Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 61 Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 62 31

32 Zusammenfassung Grundlagen Virtuelle Welt und Physikalische Welt Modelle Gruppierung und Transformation Verhalten Lichtquellen Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 63 Danke für die Aufmerksamkeit Daniel F. Abawi Einführung in Java3D 20. Juni 2006 Folie 64 32

Einführung in Java3D

Einführung in Java3D Einführung in Java3D Dipl.-Inform. Paul Grimm Professur Graphische Datenverarbeitung Ziele des Seminars Wie kann ich Java3D benutzen? Wo kann ich Informationen finden? Wo finde ich Beispiele? Welche Konzepte

Mehr

Einführung - Was ist Java3D?

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

Mehr

Einführung - Was ist Java3D?

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

Mehr

Einführung in Java3D. Dipl.-Inform. Inform.. Paul Grimm Professur Graphische Datenverarbeitung

Einführung in Java3D. Dipl.-Inform. Inform.. Paul Grimm Professur Graphische Datenverarbeitung Einführung in Java3D Dipl.-Inform Inform.. Paul Grimm Professur Graphische Datenverarbeitung Ziele des Seminars Wie kann ich Java3D benutzen? Wo kann ich Informationen finden? Wo finde ich Beispiele? Welche

Mehr

Der Szenegraph. Im Folgenden eine kurze Beschreibung der wichtigsten Knoten des Szenegraphen:

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

Mehr

Einige weitere Fähigkeiten und Anwendungsbeispiele

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?

Mehr

Java3D - Teil 6. Michael Haller

Java3D - Teil 6. Michael Haller Java3D - eil 6 Michael Haller Inhalt der Vorlesung Interaktion 2: astaturgesteuerte Navigation Mausinteraktion Mausgesteuerte Navigation Animation Picking 2 Wir erinnern uns... public void initialize(){

Mehr

Java 3D Einstiegs-Tutorial Teil 3

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

Mehr

Einführung in Java3D

Einführung in Java3D Einführung in Java3D SS05 Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de Varrentrappstr. 40-42 60486 Frankfurt am Main Raum 218 Java 3D ist eine high level Interaktive 3D Graphik-API (Application Programming

Mehr

Java 3D Einstiegs-Tutorial Teil 1

Java 3D Einstiegs-Tutorial Teil 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

Mehr

Java 3D. Linien, Flächen und Objekte Axel Bartsch, Okt. 2002

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

Mehr

9. Digitale Verarbeitung 3-dimensionaler Darstellungen

9. Digitale Verarbeitung 3-dimensionaler Darstellungen 9. Digitale Verarbeitung 3-dimensionaler Darstellungen 9.1 Grundlagen der 3D-Computergrafik 9.2 3D-Modellierung am Beispiel VRML 9.3 Interaktion in 3-dimensionalen Darstellungen 9.4 3D-Grafik-Programmierung

Mehr

Aktuelle Binaries: Version 1.5.2; download: https://java3d.dev.java.net/binary-builds.html. + Visual Toolkit (VTK -> KITWARE)

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

Mehr

3D-Grafik und -Animation: Java3D

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

Mehr

B6. 3D-Computergrafik mit Java

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

Mehr

Erstellung geometrischer Figuren und Verwendung von Texturen in Java 3D

Erstellung geometrischer Figuren und Verwendung von Texturen in Java 3D Grafisch-Interaktive Systeme Prof. Dr. Heinzel Vertiefungsgebiet Embedded Systems Bachelor WS 2007 / 2008 Hochschule Fulda Erstellung geometrischer Figuren und Verwendung von Texturen in Java 3D Markus

Mehr

B6. 3D-Computergrafik mit Java

B6. 3D-Computergrafik mit Java B6. 3D-Computergrafik mit Java B6.1 Grundlagen der 3D-Computergrafik B6.2 Einführung in Java 3D B6.3 Animation B6.4 Geometrie, Material, Beleuchtung (Forts.) B6.5 Interaktion Literatur: D. Selman: Java

Mehr

B6. 3D-Computergrafik mit Java

B6. 3D-Computergrafik mit Java B6. 3D-Computergrafik mit Java B6.1 Grundlagen der 3D-Computergrafik B6.2 Einführung in Java 3D B6.3 Animation B6.4 Geometrie, Material, Beleuchtung (Forts.) B6.5 Interaktion Literatur: D. Selman: Java

Mehr

Java 3D Einstiegs-Tutorial Teil 2 Steuerung des Erscheinungsbildes (Appearance):

Java 3D Einstiegs-Tutorial Teil 2 Steuerung des Erscheinungsbildes (Appearance): Java 3D Einstiegs-Tutorial Teil 2 Steuerung des Erscheinungsbildes (Appearance): Computergrafik - Übungen W. Kurth, E. Roth WS 2001/02 wie in VRML können Materialeigenschaften (optische Eigenschaften)

Mehr

B6. 3D-Computergrafik mit Java

B6. 3D-Computergrafik mit Java B6. 3D-Computergrafik mit Java B6.1 Grundlagen der 3D-Computergrafik B6.2 Einführung in Java 3D B6.3 Animation B6.4 Geometrie, Material, Beleuchtung (Forts.) B6.5 Interaktion Literatur: D. Selman: Java

Mehr

B6. 3D-Computergrafik mit Java

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

Mehr

Michael Pfeiffer. Java 3D 1.3. für Einsteiger und Fortgeschrittene inclusive erster Ausblicke auf Java 3D Version 1.0

Michael Pfeiffer. Java 3D 1.3. für Einsteiger und Fortgeschrittene inclusive erster Ausblicke auf Java 3D Version 1.0 Michael Pfeiffer Java 3D 1.3 für Einsteiger und Fortgeschrittene inclusive erster Ausblicke auf Java 3D 1.3.2 Version 1.0 Dieses Dokument ist Freeware. Es darf von jedem frei benutzt werden, so lange damit

Mehr

Szenengraphen. Codruţa Cosma. Universität Ulm Sommersemester 2005

Szenengraphen. Codruţa Cosma. Universität Ulm Sommersemester 2005 Szenengraphen Codruţa Cosma Universität Ulm Sommersemester 2005 Übersicht Einführung VRML OpenSceneGraph Java3D vs. VRML OpenGL vs. Java3D und VRML Zusammenfassung 2/26 Was sind Szenengraphen? Datenstruktur

Mehr

Transformationen in Java 3D

Transformationen in Java 3D Transformationen in Java 3D Eine Ausarbeitung von Florian Hüter im Rahmen des Seminars Java3D von Prof. Dr. W. Heinzel an der FH Fulda im WS 2002/03. Inhaltsverzeichnis: Seite 1. Allgemeines zu Java3D...3

Mehr

Teil 3 - Java. Grundlagen Klassen, Attribute Methoden

Teil 3 - Java. Grundlagen Klassen, Attribute Methoden Teil 3 - Java Grundlagen Klassen, Attribute Methoden 1 Java 2 - Geschichte Ursprung: Green -Project bei der Firma Sun Microsystems 1991 Entwicklung eines Systems mit folgenden Eigenschaften: hardwareunabhängig

Mehr

Wiederholung JAVA. 1. (Vorbereitung)

Wiederholung JAVA. 1. (Vorbereitung) Softwaretechnik für IM, WS2018/2019 http://knopper.net/bw/swt/ Übung 1 Wiederholung JAVA Hinweise: Das JAVA Development Kit (JDK) zum Entwickeln von JAVA-Programmen und das JAVA Runtime Environment (JRE)

Mehr

Zellaufbau Java 3D Verteilungsalgorithmus

Zellaufbau Java 3D Verteilungsalgorithmus Zellaufbau Java 3D Verteilungsalgorithmus Christina Ander & Regina Bisdorf Universität Bielefeld 06.12.2007 C. Ander & R. Bisdorf (Universität Bielefeld) Zellaufbau Java 3D Verteilungsalgorithmus 06.12.2007

Mehr

Grundlagen der Java 3D- Programmierung

Grundlagen der Java 3D- Programmierung Grundlagen der Java 3D- Programmierung und deren exemplarische Umsetzung Verfasser: MATSE-Auszubildender am Institut für Leichtbau der RWTH Aachen, angehender Bachelor of Science Die vorliegende Arbeit

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 18 Einstieg in die Informatik mit Java Applets Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Einführung 2 Sicherheits-Maßnahmen 3 Ereignisgesteuerte Programmierung

Mehr

3D-Formate im Web. Teil 1: VRML. Von Lars Hillebrandt,

3D-Formate im Web. Teil 1: VRML. Von Lars Hillebrandt, 3D-Formate im Web Teil 1: VRML Von Lars Hillebrandt, wtell@upb.de Was ist VRML Virtual Reality Modeling Language VRML ist die am häufigsten verwendete Sprache für 3D-Grafik im Web. Seit 1997 ISO-Standard

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Projektarbeit. Thema: Entwicklung einer Modellierungs-Software für. Rotationskörper. (Surface of Revolution) Verfasser: Marc Hugo

Projektarbeit. Thema: Entwicklung einer Modellierungs-Software für. Rotationskörper. (Surface of Revolution) Verfasser: Marc Hugo Projektarbeit Thema: Entwicklung einer Modellierungs-Software für Rotationskörper (Surface of Revolution) Verfasser: Marc Hugo (Matr. Nr.: 7034925) Christian Kraus (Matr. Nr.: 7038107) Prof. Dr. Michael

Mehr

Die Klassenbibliothek Java 3D am Beispiel eines einfachen Planetensystems

Die Klassenbibliothek Java 3D am Beispiel eines einfachen Planetensystems Goerdeler-Gymnasium Paderborn Facharbeit 1 Thema: Die Klassenbibliothek Java 3D am Beispiel eines einfachen Planetensystems Fach: Kurs: Fachlehrer: Informatik GK Herr Hilwerling Autor: Daniel Dreibrodt

Mehr

Institut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur

Institut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 17. Juli 2015 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 7. September

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch Einführung in die Programmierung für Nebenfach Medieninformatik Beat Rossmy, Michael Kirsch Direct Feedback - Socrative Eure Mitarbeit ist uns wichtig! Installiert euch dazu die kostenlose App Socrative

Mehr

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung I 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.0 Einfache Java Programme Struktur Namen Output 2 Graphische Darstellung

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch Einführung in die Programmierung für Nebenfach Medieninformatik Beat Rossmy, Michael Kirsch Direct Feedback - Socrative Eure Mitarbeit ist uns wichtig! Installiert euch dazu die kostenlose App Socrative

Mehr

Swing. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Swing. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Swing Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 27.06.07 G. Bohlender (IANM UNI Karlsruhe) Swing 27.06.07 1 / 10 Übersicht 1 Einführendes

Mehr

Vor-Geschichte von VRML

Vor-Geschichte von VRML Einführung in VRML VRML heisst Virtual Reality Modeling Language, ein Teil von Web3D / X3D. VRML ist einfach ein 3D Datenaustausch- Format: Es besitzt Sprachelemente für die heute in 3D-Applikationen üblichen

Mehr

Computergrafik Universität Osnabrück, Henning Wenke,

Computergrafik Universität Osnabrück, Henning Wenke, Computergrafik Universität Osnabrück, Henning Wenke, 2012-05-14 Kapitel V: Modeling Transformation & Vertex Shader 5.1 Vertex Definitionen: Vertex Vertex Computergrafik Mathematischer Punkt auf einer Oberfläche

Mehr

Kapitel 4: Klassen und Unterklassen

Kapitel 4: Klassen und Unterklassen Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind

Mehr

Programmieren 2 Java Überblick

Programmieren 2 Java Überblick Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10

Mehr

Eclipse Tutorial.doc

Eclipse Tutorial.doc Berner Fachhochschule Hochschule für Technik und Informatik, HTI Fachbereich Elektro- und Kommunikationstechnik Labor für Technische Informatik Eclipse Tutorial 2005, HTI Burgdorf R. Weber Dateiname: Eclipse

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:

Mehr

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für

Mehr

1. Laboraufgabe. Grafische Nutzerschnittstellen. Studiengang I / IEA / SAT

1. Laboraufgabe. Grafische Nutzerschnittstellen. Studiengang I / IEA / SAT 1. Laboraufgabe Grafische Nutzerschnittstellen Studiengang I / IEA / SAT FB Automatisierung und Informatik: Grafische Nutzerschnittstellen 1 1. Laboraufgabe: Die Aufgabe lautet, ein Javaprogramm zu schreiben,

Mehr

Instrumentierung und Dekodierung

Instrumentierung und Dekodierung 116 Copyright 1996-1998 by Axel T. Schreiner. All Rights Reserved. Instrumentierung und Dekodierung Erweiterung der Grafikklassen Das awt-paket erweitert alle Klassen für Grafikobjekte in java.awt, so

Mehr

Anweisungen zur Ablaufsteuerung

Anweisungen zur Ablaufsteuerung Anweisungen zur Ablaufsteuerung if-else switch while do-while for Ausdrücke Ein Ausdruck ist eine Folge von Variablen, Operatoren und Methodenaufrufen, der zu einem einzelnen Wert ausgewertet wird. Operanden

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

Java3D. Beleuchtung und Material

Java3D. Beleuchtung und Material Java3D Seminar WS 02/03 Beleuchtung und Material Presman Julia (145185) Presman Alexander (155298) FH-Fulda Inhaltsverzeichnis 1.Beleuchtungsmodell...2 2.Schattierungsmodell...3 2.1.Flat-Schattierung...3

Mehr

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt

Mehr

Institut für Programmierung und Reaktive Systeme 6. Juli Programmieren II. Übungsklausur

Institut für Programmierung und Reaktive Systeme 6. Juli Programmieren II. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 6. Juli 2018 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 27. August

Mehr

Koordinatensystemorientierung. -Drehung. Mittelfinger als -Achse ergibt sich das entsprechende. -Achse, den Zeigefinger als -Achse und den

Koordinatensystemorientierung. -Drehung. Mittelfinger als -Achse ergibt sich das entsprechende. -Achse, den Zeigefinger als -Achse und den Koordinatensystemorientierung -Drehung rechtshändiges Koordinatensystem: eine gegen den Uhrzeigersinn überführt die positiven Achsen ineinander. y x z Verwendet man den Daumen der rechten Hand als -Achse,

Mehr

Institut für Programmierung und Reaktive Systeme 7. Juli Programmieren II. Übungsklausur

Institut für Programmierung und Reaktive Systeme 7. Juli Programmieren II. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 7. Juli 2017 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 28. August

Mehr

Applets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog.

Applets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog. Johann Wolfgang Goethe-Universität Professur für Graphische Datenverarbeitung Fachbereich Informatik und Mathematik Prof. Dr. Detlef Krömker Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

Einführung in die Systemprogrammierung

Einführung in die Systemprogrammierung Einführung in die Systemprogrammierung Virtuelle Methodentabellen Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 9. Juli 2015 Struktur der Objektorientierung Ein wenig Java: public

Mehr

Inhalt. Installieren Projekt erstellen UI Bedienen Objekte importieren Blueprints C++

Inhalt. Installieren Projekt erstellen UI Bedienen Objekte importieren Blueprints C++ Eine Einführung Inhalt Installieren Projekt erstellen UI Bedienen Objekte importieren Blueprints C++ Installieren Launcher Engine Visual Studio Registrieren Epic Launcher herunterladen (www.unrealengine.com)

Mehr

Einführung in die Programmierung I. 1.0 EBNF 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung I. 1.0 EBNF 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung I 1.0 EBNF 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Graphische Darstellung von EBNF Regeln Syntax Graph: graphische Darstellung

Mehr

Konzepte objektorientierter Programmierung

Konzepte objektorientierter Programmierung Konzepte objektorientierter Programmierung Objekte Klassen Nachrichten Kapselung Einführung Vererbung heute! Konzepte objektorientierter Programmierung Was ist ein Objekt? Was ist eine Klasse? Was sind

Mehr

Klausur Software-Entwicklung März 01

Klausur Software-Entwicklung März 01 Aufgabe 1: minimaler Punktabstand ( 2+5 Punkte ) Matrikelnr : In einem Array punkte sind Koordinaten von Punkten gespeichert. Ergänzen Sie in der Klasse Punkt eine Klassen-Methode (=static Funktion) punktabstand,

Mehr

9. Ausnahmebehandlung

9. Ausnahmebehandlung Schwerpunkte Ausnahmen und Laufzeitfehler 9. Ausnahmebehandlung Java-Beispiele: Ausnahme.java TryCatch.java TryCatchAll.java Finally.java TryInTry.java KeyboardTry.java Oeffnungszeit.java Stack-Trace Java-Ausnahmeklassen-Hierarchie

Mehr

Szenengraph-Architekturen im Kontext von VR- und AR-Anwendungen

Szenengraph-Architekturen im Kontext von VR- und AR-Anwendungen Szenengraph-Architekturen - 1 Szenengraph-Architekturen im Kontext von VR- und AR-Anwendungen Hauptseminar Medieninformatik Christina Eicher 10. Mai 2004 Inhalt Szenengraph-Architekturen - 2 Teil 1: Szenengraphen

Mehr

Programmieren 2 Java Überblick

Programmieren 2 Java Überblick Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 3 Schnittstellen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10

Mehr

Java-Einführungskurs Informatik II (D-ITET) Vincent Becker,

Java-Einführungskurs Informatik II (D-ITET) Vincent Becker, Java-Einführungskurs Informatik II (D-ITET) Vincent Becker, vincent.becker@inf.ethz.ch Was haben wir heute vor? Vorbereitung auf die Übungen zu Informatik II Vorstellung des Teams Organisatorisches Theorie

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

ProPra WS 2008/09: LEGO-Sculptor

ProPra WS 2008/09: LEGO-Sculptor ProPra WS 2008/09: LEGO-Sculptor Dipl.-Inform. Christian Düntgen Lehrgebiet Datenbanksysteme für neue Anwendungen Worum geht es? 1. Einlesen einer Formbeschreibung aus VRML-Datei (ggf. Visualisierung der

Mehr

JAVA - Methoden

JAVA - Methoden Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 sind eine Zusammenfassung von Deklarationen und Anweisungen haben einen Namen und können

Mehr

Funktionale und Objekt-Orientierte Programmierkonzepte

Funktionale und Objekt-Orientierte Programmierkonzepte Funktionale und Objekt-Orientierte Programmierkonzepte Prof. Marc Fischlin, Wintersemester 15/16 Kapitel 17: GUI, Threads und verschachtelte Klassen 13. Oktober 2010 Dr.Marc Fischlin Kryptosicherheit 1

Mehr

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren II Dr. Werner Struckmann 29. August 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr

Mehr

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert

Mehr

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält

Mehr

Kapitel 4: Schattenberechnung

Kapitel 4: Schattenberechnung Kapitel 4: Schattenberechnung 1 Überblick: Schattenberechnung Motivation Schattenvolumen Shadow Maps Projektive Schatten 2 Motivation Wesentlich für die Wahrnehmung einer 3D-Szene Eigentlich ein globaler

Mehr

Die Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp

Die Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert

Mehr

Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009

Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009 Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009 Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 1 Ziele

Mehr

Java-Einführungskurs Informatik II (D-ITET) Vincent Becker,

Java-Einführungskurs Informatik II (D-ITET) Vincent Becker, Java-Einführungskurs Informatik II (D-ITET) Vincent Becker, vincent.becker@inf.ethz.ch Was haben wir heute vor? Vorbereitung auf die Übungen zu Informatik II Vorstellung des Teams Organisatorisches Theorie

Mehr

XML-basierte 3D-Komponenten

XML-basierte 3D-Komponenten XML-basierte 3D-Komponenten Diplomarbeit, Wintersemester 2000/2001 Daniel F. Abawi Silvan Reinhold Betreuer: Dipl.-Inform. Ralf Dörner Dipl.-Inform. Paul Grimm Technische Universität Darmstadt Vorgehensweise

Mehr

9. Ausnahmebehandlung

9. Ausnahmebehandlung 9. Ausnahmebehandlung Java-Beispiele: Ausnahme.java TryCatch.java TryCatchAll.java Finally.java TryInTry.java KeyboardTry.java Oeffnungszeit.java Version: 11. Jan. 2016 Schwerpunkte Ausnahmen und Laufzeitfehler

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 07: Composite Classes Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2017 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 23 Inhalt

Mehr

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer Applets Belebung von Webseiten Dipl.-Ing. Wolfgang Beer Was sind Applets? Java Klassen, die spezielle Richtlinien befolgen, um: "in Internet-Browsern lauffähig zu sein" Somit ist, komplexere Funktionalität,

Mehr

Intensivübung zu Algorithmen und Datenstrukturen

Intensivübung zu Algorithmen und Datenstrukturen Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche

Mehr

Grafik - wozu? GUI Grafische Benutzungsschnittstellen. Gehört zum Standardumfang des JDK. 2 Varianten: AWT und Swing

Grafik - wozu? GUI Grafische Benutzungsschnittstellen. Gehört zum Standardumfang des JDK. 2 Varianten: AWT und Swing Grafik - wozu? Grafik - wozu? GUI Grafische Benutzungsschnittstellen Gehört zum Standardumfang des JDK 2 Varianten: AWT und Swing Konzeptuell sind beide Varianten gleich Heute: Beispiel für AWT Zeichnen,

Mehr

Build Management Tool

Build Management Tool Build Management Tool Build-Prozess? Source Code 3rd Party libraries Veröffentlichung Download all 3rd Party libs by hand Compile your sources: javac -sourcepath./src1;./src2 Byte Code -cp lib1.jar;lib2.jar

Mehr

Übungsblatt 2: Einstieg in JOGL

Übungsblatt 2: Einstieg in JOGL : Einstieg in JOGL Abgabe: Dieses Übungsblatt ist einzeln zu lösen. Die Lösung ist bis Montag, den 7. Mai 2012, 12:00 Uhr s.t. über UniWorx (https://uniworx.ifi.lmu.de/) abzugeben. Es werden nur die Formate

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de

Mehr

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]

Mehr

Die Elemente einer Szene werden in einer Graphstruktur gespeichert

Die Elemente einer Szene werden in einer Graphstruktur gespeichert SZENEGRAPHEN Szenegraphen Allgemeines Szenegraphen dienen zum Verwalten von 3D-Szenen Die Elemente einer Szene werden in einer Graphstruktur gespeichert Jede reale Implementierung eines Szenegraphen ist

Mehr

Aufbau interaktiver 3D-Engines

Aufbau interaktiver 3D-Engines Aufbau interaktiver 3D-Engines ActorComponents Im Folgenden findet sich eine Übersicht über alle bereits implementierten Actorcomponents der Engine. Dabei werden XML-Elemente, die die Komponente beschreiben

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen 5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Tutoraufgabe 1 (Seiteneekte):

Tutoraufgabe 1 (Seiteneekte): Prof. aa Dr. M. Müller C. Aschermann, J. Hensel, J. Protze, P. Reble Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je 3 Studierenden aus der gleichen Kleingruppenübung (Tutorium) bearbeitet

Mehr

Polymorphie und UML Klassendiagramme

Polymorphie und UML Klassendiagramme Polymorphie und UML Klassendiagramme Prof. Dr.-Ing. Thomas Schwotzer 1 Einführung Vererbung hat einen sehr interessanten und effektiven Effekt: die Polymorphie. Darum geht es in dieser Veranstaltung. 2

Mehr