Linien, Flächen & geometrische Figuren von Mario Linge

Slides:



Advertisements
Ähnliche Präsentationen
Konzeptioneller Vergleich von VRML, Java3D und OpenGL hinsichtlich ihrer Eignung zur Erstellung von Animationen von Christian Stein.
Advertisements

der Universität Oldenburg
der Universität Oldenburg
Eine Seminararbeit von Gerd Mühlinghaus
Objektorientierte Programmierung
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Konzepte objektorientierter Systeme
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Java3D Einfacher scene graph View branch graph BG Shape3D Knoten S
Application Programming Interface Graphische Datenverarbeitung
Geometrie Programmierung beginnend bei 0 ist
Stefan Dubois WS 02/03 Texturen in Java 3D. Übersicht Was sind Texturen? Klassenhierarchie fünf-Schritt-Plan Optionen für Texturen (Auswahl) TextureAttributes.
Anwendungssysteme SoSe Projekt Einführung in VRML (Teil 1) AWS SoSe2000Einführung in VRMLSeite 1.
Objektorientierte Programmierung Definition von Klassen
FH-Hof Texturen Richard Göbel. FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien...
FH-Hof Geometrie Richard Göbel. FH-Hof Aufbau des virtuellen Universums.
FH-Hof Interaktion Richard Göbel. FH-Hof Interaktion mit der Klasse Behavior Behavior-Objekte sind Knoten des Szenengraphen. Behavior-Objekte werden durch.
Licht und Schatten Richard Göbel.
FH-Hof Automatisches Erzeugen von Geometrie Richard Göbel.
Java: Grundlagen der Sprache
FH-Hof Java3D - Grundlagen Richard Göbel. FH-Hof Java3D Konzept Erzeugung eines Szenengraphen als virtuelle Welt Darstellung der virtuellen Welt mit Hilfe.
FH-Hof Texturen Richard Göbel. FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien...
Konstruktoren.
Polymorphie (Vielgestaltigkeit)
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung X1 Sitzung X1: Packages & Wiederholung.
Objektorientierte Programmierung JDK-Klassenbibliothek
Einführung in die OOP in Java
Java 3D Carina Fleck Licht und Material.
Java3d „Licht und Material“
Einführung in die Programmierung mit Java
Diskrete Mathematik I Vorlesung Arrays-
Java-Kurs Grafik Julian Drerup.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
Schiller-Gymnasium Hof Manuel Friedrich OStR,
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Einführung in die Programmierung Datensammlung
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Programmierung im Netz und Internet: Einführung in die Programmiersprache Java Teil I 1 Klassen Objekte von.
FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung.
Verhalten von Objekten in der Szene
Medizinische Visualisierung
Variablenkonzept Klassisch, in Java Basistyp
EPROG Tutorium #3 Philipp Effenberger
Softwareengineering Graphen und Bäume Teil II
Programmiervorkurs WS 2014/15 Instanzmethoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Benutzerdefinierte Datentypen (1)
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
TNT Mips Einführung zur Erstellung eigener Projektarbeiten
Diskrete Mathematik I Vorlesung 2 Arrays.
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Lösung der Hausaufgaben von Vorlesung 10 Universität Bonn Institut für Kartografie und Geoinformation Dipl.-Ing. Dörschlag, Dr. Gröger, Prof. Dr. Plümer.
Einführung in die Programmierung mit Java
Java-Kurs - 9. Übung Besprechung der Hausaufgabe
Diskrete Mathe Diskrete Mathematik I Listen Vorlesung 4.
Java Programme nur ein bisschen objektorientiert.
Objektorientierte Programmierung mit JAVA. © Klasse Wie in C++ ist die Klasse das primäre Mittel um ein Entity abzubilden Die Eigenschaften.
Dr. Wolfram Amme, Virtuelle Vererbung, Informatik II, FSU Jena, SS Auflösung von Konflikten bei Mehrfachvererbung Umbenennung mehrdeutiger Methoden.
1 Grundsätze objektorientierter Programmierung. Dr. Wolfram Amme, Grundsätze objektorientierter Programmierung, Informatik II, FSU Jena, SS Objektorientierte.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Vererbung.
Java-Kurs Übung Grafik in Java - das Abstract Windowing Toolkit
Grundkurs Informatik 11-13
1. Die rekursive Datenstruktur Liste 1
Implementieren von Klassen
Grundkurs Informatik 11-13
 Präsentation transkript:

Linien, Flächen & geometrische Figuren von Mario Linge Java 3D – Seminar Linien, Flächen & geometrische Figuren von Mario Linge

Themenübersicht kurze Einführung (Shape3D) Primitives mathematische Klassen Array-Klassen

Shape3D-Knoten

Shape3D formt ein virtuelles Objekt Unterklasse von Leaf Geometry: Struktur der Form Appearance: Farbe, Transparenz,... mehrfach verwendbar

Shape3D Konstuktoren und Methoden Konstruktoren: Shape3D( ) Shape3D( Geometry geo, Appearance ap ) Methoden: void setGeometry( Geometry geo ) void setAppearance( Appearance ap)

Übersicht Utility-Klassen fertige Objekte, Box, Cone… mathematische Klassen Tupel, Points, Color Array - Klassen LineArray bis TriangleFanArray

Utility -Klassen klassische Grundkörper com.sun.j3d.utils.geometry.Primitive fertige Körper incl. Shape3D Größe und Erscheinung änderbar

Utility –Klasse: Box Box() Box(float xdim, float ydim, float zdim, Default 2.0 m zentriert im Ursprung Box(float xdim, float ydim, float zdim, Appearance appearance) Größenangaben Erscheinungsbild

gleiches Prinzip: Sphere Default 1m Radius Sphere(float radius) Sphere(float radius, Appearance appearance)

ebenso Cone Cone() Cone(float radius, float height) float height, Default 1m Radius & 2m Höhe Cone(float radius, float height) float height, Appearance appearance)

…und Cylinder Cylinder() Cylinder(float radius, float height) Default 1m Radius & 2m Höhe Cylinder(float radius, float height) float height, Appearance appearance)

Color Cube fertiger Würfel, verschiedenfarbige Seiten nur noch Größe änderbar, keine Appearance abgeleitet von Shap3D

Wie binde ich Primitives ein? Beispiel

mathematische Klassen javax.vecmath.* - Package sieben abstrakte Tuple*-Klassen alle anderen Klassen erben von Tuple*

mathematische Klassen Point-Klassen (für Koordinaten) Color-Klasse (Farbe) Vector-Klassen (Oberflächennormale)

Konstruktoren & Methoden Point3f() Defaultwerte(0,0,0) Point3f(float x, float y, float z) void set(float x, floaty)           

Geometry-Array-Klassen javax.media.j3d.Geometry Alle erben von Geometry- Array(abstrakt) Modellierung komplizierter Objekte Punkte, Linien, Polygone, Flächen           

Geometry-Array-Klassen LineSripeArray LineArray TriangleStripeArray TriangleArray

3 Schritte zur Erstellung 1. Objekt erzeugen 2. Objekt mit Daten füllen 3. Referenzieren aus einem Shape3D Objekt           

Schritt 1 Leeres Objekt erzeugen LineArray myLine = new LineArray (2, LineArray.COORDINATES); vertexCount: Anzahl der Vertices vertexFormat: Welcher Datentyp vertexFormat: COORDINATES, NORMALS, COLOR_3 ...           

Schritt 2 Objekt mit Daten füllen Setzen der Koordinaten: myLine.setCoordinate(0,new Point3f(-0.5f,-0.8f,-0.8f)); myLine.setCoordinate(1,new Point3f( 0.9f,0.8f,0.0f)); setzen der Farbe: myLine.setColor(0, new Color3f(1.0f, 0.0f, 0.0f)); myLine.setColor(1, new Color3f(1.0f, 0.0f, 0.0f));          

Schritt 3 Referenzieren von Shape3D BG = new BranchGroup(); BG.addChild(new Shape3D(myLine));

Beispiel

Beachten bei der Füllung Nur gefüllte Polygone bis zu 4 Kanten Triangulator erstellt TriangleArrays: Triangulator tr = new Triangulator(); tr.triangulate(ginfo); // ginfo ist eine geometry shape.setGeometry(ginfo.getGeometryArray()); // shape ist Shape3D

IndexedGeometryArray Ähnlich wie GeometryArray-Klasse Spezielle Lösung zur Wiederverwendung von Punkten innerhalb des Index Index kann auf sich selbst verweisen

IndexedGeometryArray //3= Anzahl der Indizes mit tatsächlichen Werten //4= Gesamtanzahl der Indizes IndexedLineArray axisLines = new IndexedLineArray(3, GeometryArray.COORDINATES, 4); //neue Indizes mit tatsächlichen Werten axisLines.setCoordinate( 0, new Point3f(-1.0f, 0.0f, 0.0f)); axisLines.setCoordinate( 1, new Point3f(1.0f, 1.0f, 1.0f)); axisLines.setCoordinate( 2, new Point3f(0.5f, -1.0f, 0.0f)); //Verweis auf schon vorhandene Werte im eigenen Index axisLines.setCoordinateIndex( 0, 0);

Referenzen http:// www.java.sun.com http://webster.fhs-hagenberg.ac.at/staff/ haller/mmp5_20012002/ http://www.j3d.org/tutorials/raw_j3d/ http://www.manning.com/selman/onlinebook/ http://java.sun.com/products/java-media/3D/collateral/class_notes/slides/mt0000.htm

Noch Fragen ? ? ?