Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Java 3D – Seminar Linien, Flächen & geometrische Figuren von Mario Linge."—  Präsentation transkript:

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

2 Themenübersicht kurze Einführung (Shape3D) kurze Einführung (Shape3D) PrimitivesPrimitives mathematische Klassenmathematische Klassen Array-KlassenArray-Klassen

3 Shape3D-Knoten

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

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

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

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

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

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

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

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

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

13 Wie binde ich Primitives ein? Beispiel

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

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

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

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

18 Geometry-Array-Klassen LineArray TriangleArray LineSripeArray TriangleStripeArray

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

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

21 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));

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

23 Beispiel

24 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

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

26 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);

27 Referenzen haller/mmp5_ / media/3D/collateral/class_notes/slides/mt0000.htm

28 Noch Fragen ? ? ?


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

Ähnliche Präsentationen


Google-Anzeigen