Wie erstelle ich ein 3D / Surface-Diagramm mit JavaFX?

9

Problem

Ich habe versucht, mit JavaFX ein 3D-Diagramm zu erstellen, aber es scheint schwieriger zu sein als das, was man erwarten würde.

Mein aktueller Weg wäre, ein TriangleMesh zu erstellen, aber das ist eher umständlich. Ich möchte nur ein List<Point3D> für das Diagramm bereitstellen und das Diagramm sollte dann als Oberfläche gerendert werden.

Aber auch eine einfache Pyramide mit 5 Datenpunkten erweist sich als ziemlich kompliziert:

%Vor%

Fragen

  • Kann jemand ein 3D-Diagramm mit JavaFX erstellen?
  • Ist ein TriangleMesh der richtige Weg?
  • Wie konvertiert man List<Point3D> in ein TriangleMesh?

Code

%Vor%

Das Diagramm sollte e sein. G. etwas wie das:

oder das:

Am Ende sollte es möglich sein, e anzuzeigen. G. das Ergebnis von Perlin Noise , aber anstelle des Perlin Noise Value eine Farbe Wert, es ist ein Höhenwert.

Vielen Dank für die Hilfe!

    
Roland 26.06.2015, 12:18
quelle

2 Antworten

9

Danke Antwort von NwDx schaffte es, etwas Nützliches zu schaffen. Es ist keine komplette Chart-Anwendung und ich hoffe, dass jemand mit mehr Know-how eine bessere Antwort liefern kann, aber ich werde trotzdem das Ergebnis veröffentlichen.

Sie können Maus zum Drehen und Mausrad zum Zoomen verwenden. Das Beispiel zeigt ein Perlin-Rauschdiagramm mit einer diffusen Abbildung, die auf dem Gitter verwendet wird.

Der Kern ist nicht wirklich viel Code. Es geht nur darum, ein 2D-Array in ein Mesh zu verwandeln:

%Vor%

Wenn jemand einen besseren Algorithmus hat, bitte teilen Sie ihn. Es macht mir nichts aus, wenn Sie den Code wiederverwenden.

Das vollständige Arbeitsbeispiel:

%Vor%

Screenshot:

    
Roland 29.06.2015, 21:18
quelle
1

Jzy3d hat eine Brücke für JavaFX, Sie können versuche es hier .

Sie können Oberflächen aus mathematischen Funktionen oder aus Punkten mit Delaunay-Tesselation erstellen.

Weitere Beispiele finden Sie hier und hier .

    
Martin 29.02.2016 14:25
quelle

Tags und Links