3D-Polygon

Sploat

Mitglied
Hallo zusammen,

ich habe ein Problem und wusste nicht genau, wo ich es hinpacken soll.
Deshalb hier:

Ich habe ein Polygon mit 5 Punkten, welches folgendermaßen abgespeichert ist:

Java:
Point3d[] punktListe = new Point3d[5];
Also in einem Array aus 5 Point3d-Punkten.
Das Problem, welches ich habe ist, dass ich für jeden Punkt eine Normale brauche.
Also mache ich folgendes:

Java:
		GeometryInfo geomInfo = new GeometryInfo(GeometryInfo.POLYGON_ARRAY);			
		NormalGenerator ng = new NormalGenerator();
		int[] stripCountArray = new int[1];
		stripCountArray[0] = 5;
geomInfo.setCoordinates(punktListe); // punktliste übergeben
				geomInfo.setStripCounts(stripCountArray);  // Polygon hat 5 Punkte
				
				ng.generateNormals(geomInfo);
				IndexedGeometryArray indexedGeomArray = geomInfo.getIndexedGeometryArray(false,false,false,false,false);

Wenn ich mir jetzt mit dem Befehl

Java:
				Point3d vector = new Point3d();
				indexedGeomArray.getCoordinate(0, vector);
				System.out.println(vector.x+"X");
				System.out.println(vector.y+"Y");
				System.out.println(vector.z+"Z");

die Punkte angucke, kann ich aber auch den Index 5 bei getCoordinate angeben.
Die Koordinate dieses Punktes ist dann (0,0,0).
Wie kann das sein? Ich habe doch nur die Indizes 0-4 vergeben.
Woher kommt der fünfte Punkt?
Was genau macht der Befehl

Java:
IndexedGeometryArray indexedGeomArray = geomInfo.getIndexedGeometryArray(false,false,false,false,false);

Was sagt mir der Befehl aus:

Java:
indexedGeomArray.getIndexCount();

Dieser gibt mir in meinem Fall 9 zurück...

Aus der Java-Dokumentation werde ich irgendwie nicht so richtig schlau...

Falls jemand eine andere Idee hat, wie ich an die Normale jedes Punktes ran komme wäre es auch in Ordnung.

Ich bin für jede Hilfe dankbar!:)

Beste Grüße
 

Ähnliche Java Themen

Neue Themen


Oben