3D Fläche Zeichnen

Kurapi995

Neues Mitglied
kann mir jemandem helfen, eine 3d Fläche in Java zu zeichnen
Es ist ein Plugin für ImageJ zu erstellen, das aus einem vom Anwender auszuwählenden 32 mal 32
Bildpunkte großen Ausschnitt eines geöffneten Graustufenbilds die Projektion einer 3D-Fläche in einem neuen RGB-Farbbild generiert.
 

Anhänge

  • Bildschirmfoto 2021-11-23 um 00.41.25.png
    Bildschirmfoto 2021-11-23 um 00.41.25.png
    621,3 KB · Aufrufe: 0

Neumi5694

Top Contributor
Das ist doch ein recht komplexes Thema ... Als erstes brauchst du mal eine Umrechnung des 2D-Bilds in eine 3D-Darstellun, hier bietet sich eine einfache Transformation des Grau-Werts in eine Z-Koordinate an.
Die Farben der Linien, bzw. die Übergänge ergeben sich durch diese Z-Werte. Hier brauchst du eine Tabelle, für welchen Z-Bereich welche Farbe gilt, dazwischen wird interpoliert.
Die "Ansicht" und ob du z.B. isometrisch oder mit Tiefenwirkung darstellen willst, sind dann nochmal ein Thema.
Wie man jetzt in Java eine Linie mit Farbverlauf zeichnet ... keine Ahnung.

Bei so was bist du besser dran, eine fertige 3D Engine zu verwenden, schau dir eventuell mal JMonkeyEngine oder Java3D an (vielleicht hat ja auch jemand einen besseren Vorschlag). Java3D ist in seiner Struktur schon etwas betagt, aber einfacher zugänglich. Aber auch hier wüsste ich jetzt nicht, wie man Farbverläufe auf Linien erzeugen kann. Vielleicht gibt's aber auch schon was vorgefertigtes, das jeden Punkt auf einem Mesh abhängig von seiner Z-Koordinate in einer anderen Farbe zeichnet.
 

Neumi5694

Top Contributor
Wo ich darüber nachdenke, gibt's - da es sich eigentlich nur um 2D-Informationen handelt, vielleicht auch eine einfachere Möglichkeit ohne Meshes - sofern dir ein einfacher ISO-Renderer reicht.
Sofern es keine andere Möglichkeit gibt, einen Farbverlauf darzustellen, würde ich dann Linien zwischen den Punkten zerstückeln und jede Teillinie in einer anderen Farbe zeichnen.
Damit haben wir dann einfach nur eine recht große Menge an zu zeichnenden Linien, Start- und Endpunkt werden jeweils in das Bildschirmkoordinatensystem umgerechnet.

Es fängt alles damit an, dass du über eine Transformationsmatrix einen 3D-Punkt auf den Bildschirm bringen musst. Das Koordinatensystem und die Grundfläche ohne Z-Werte wären ein guter Anfang, um zu sehen, ob's klappt, anschließend mal die restlichen Seiten des Quaders.

Erstell dir gleich von Beginn an auch schon mal ein Line-Objekt, das auch Z-Koordinaten speichert, das ist angenehmer, als ständig viele einfache Parameter rumreichen zu müssen. Diesem Line-Objekt könnte man z.B. auch gleich die gewünsche Farbe als Info mitgeben.

Dann zeichne im ersten Schritt einfach mal eine rechteckige Fläche, bestehend aus 4 Linien auf den Bildschirm. Die Z-Koordinate wird hierfür natürlich nicht gebraucht.

Im zweiten Schritt jag die Punkte dieser Linien durch eine Transformationsmatrix.
Versuch's mal mit dieser Matrix, die ist eine einfache isometrische Ansicht von rechts vorn oben (ohne Tiefenwirkung), zeichne damit dein Rechteck von vorhin auf den Bildschirm.

Java:
{{ox, oy, oz},
{0.70710678, 0.70710678, 0},
{0.40824254, -0.40824254, -0.81650233}
{0.57735027, -0.57735027, 0.57735027}}
Offset und Zoomfaktor sind hier noch nicht mit drin. Verwende im ersten Schritt einfach mal große Koordinaten und setzt das Offset dann manuell.
Oder bau am besten gleich einen Listener für Mousedrag mit ein, der das Offset dann anpasst.


Vielleicht kommst du so ja auf den richtigen Weg :)
VIel Spaß beim Experimentieren.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Kreis soll die gleiche Fläche wie das Rechteck haben wie mache ich das? Java Basics - Anfänger-Themen 3
A Kreisumfang/-Fläche vom Kreis berechnen Java Basics - Anfänger-Themen 39
D Fläche von Rechtecken Java Basics - Anfänger-Themen 8
F JPanel als JPG - weisse Fläche Java Basics - Anfänger-Themen 9
A Intelligente Anordnung von Frames in einer Fläche Java Basics - Anfänger-Themen 4
A Leere Fläche einer Tabelle umfärben Java Basics - Anfänger-Themen 3
B Bitte um Hilfe es geht um Array + Punkte wie Dreieck,Fläche etc. Java Basics - Anfänger-Themen 12
F MouseOver bei schräg gestellter Fläche Java Basics - Anfänger-Themen 2
J Anwendung zeigte weiße Fläche bis ich kompiliert hatte! Java Basics - Anfänger-Themen 2
S Fläche von Rechtecken Java Basics - Anfänger-Themen 3
H Button auf AWT Fläche pixelgenau positionieren Java Basics - Anfänger-Themen 4
W Problem mit einem Programm Rechteck Fläche, Umfang Java Basics - Anfänger-Themen 6
J SWING UI Designer und zeichnen Java Basics - Anfänger-Themen 4
luggas89 Mit Jframe live zeichnen Java Basics - Anfänger-Themen 4
J Bild auf Hintergrundbild zeichnen Java Basics - Anfänger-Themen 5
R Iterativ zeichnen Java Basics - Anfänger-Themen 1
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
P JFrame, Linien zeichnen, MouseListener Java Basics - Anfänger-Themen 2
KogoroMori21 Mit einer Schleife eine Treppe zeichnen Java Basics - Anfänger-Themen 29
V Speicherzustand zeichnen Java Basics - Anfänger-Themen 0
O Klappt nicht: Ein Panel neu zeichnen Java Basics - Anfänger-Themen 3
CptK Interface Bilder mit Graphics g zeichnen Java Basics - Anfänger-Themen 7
B Java JFrame zeichnen Java Basics - Anfänger-Themen 4
Mosquera f(x)=x² zeichnen Java Basics - Anfänger-Themen 5
J Graphen in Java zeichnen Java Basics - Anfänger-Themen 11
L Anfängerin möchte Linie zeichnen Java Basics - Anfänger-Themen 8
D JPanel mehrere Formen zeichnen Java Basics - Anfänger-Themen 5
S Zeichnen mit Wiederholungen Java Basics - Anfänger-Themen 12
B Wie kann ich Linien rekursiv zeichnen? Java Basics - Anfänger-Themen 4
P Einen String mittig zeichnen? Java Basics - Anfänger-Themen 1
T Koordinatensystem zeichnen - Variablen merken? Quadratische Funktion zeichnen? Java Basics - Anfänger-Themen 5
M Ein Bild durch Objekterzeugung zeichnen Java Basics - Anfänger-Themen 5
W Wie kann ich in Java eine Kurve aus Punkten zeichnen? Java Basics - Anfänger-Themen 25
snipesss Linie zeichnen ohne extra Klasse? Java Basics - Anfänger-Themen 3
C Umrisse von Bilddateien mithilfe Polygonen zeichnen Java Basics - Anfänger-Themen 5
G Aus einem Code ein Sequenzdiagramm zeichnen? Java Basics - Anfänger-Themen 1
K Rechtecke rekursiv zeichnen Java Basics - Anfänger-Themen 20
V Quadrate rekursiv zeichnen Java Basics - Anfänger-Themen 7
B Java Graphen zeichnen - Brauche Hilfe Java Basics - Anfänger-Themen 9
C Schleifenaufgabe - Molekül zeichnen Java Basics - Anfänger-Themen 6
K Ungenauigkeit beim Zeichnen von Funktionen Java Basics - Anfänger-Themen 6
H Linie zeichnen... Java Basics - Anfänger-Themen 16
N Treppe zeichnen Java Basics - Anfänger-Themen 1
M Quadrat zeichnen einfach bitte! Java Basics - Anfänger-Themen 2
P Shape Zeichnen klappt nicht - einlesen der Breite/Höhe schon Java Basics - Anfänger-Themen 1
M in Java zeichnen Java Basics - Anfänger-Themen 2
J JLabel Icon neu zeichnen Java Basics - Anfänger-Themen 2
J Rechteck zeichnen mit Canvas Java Basics - Anfänger-Themen 7
D Zeichnen, Schleifen Java Basics - Anfänger-Themen 7
S Zeichnen , Schleifen Java Basics - Anfänger-Themen 4
S Rechteck zeichnen Java Basics - Anfänger-Themen 2
S Ein Graphics Obejct mehrmals mit denselben Eigenschaften zeichnen lassen?!?!? Java Basics - Anfänger-Themen 4
S Wo beginnt ein Draw String zu zeichnen. Java Basics - Anfänger-Themen 4
S Paint Anwendung: Freihandlinien zeichnen Java Basics - Anfänger-Themen 4
llabusch Layout neu zeichnen lassen Java Basics - Anfänger-Themen 2
A Histogramm zeichnen Java Basics - Anfänger-Themen 2
S Punkt in Java zeichnen Java Basics - Anfänger-Themen 14
E Dreieck zeichnen Java Basics - Anfänger-Themen 3
gamebreiti Methoden JPanel nach clearAll() und add neu zeichnen Java Basics - Anfänger-Themen 1
T Baum mit Turtle zeichnen Java Basics - Anfänger-Themen 2
C Hilfe beim Zeichnen Java Basics - Anfänger-Themen 8
D Haus zeichnen Java Basics - Anfänger-Themen 4
K Methoden Objekt auf JFrame zeichnen Java Basics - Anfänger-Themen 16
H 27 Kreise Zeichnen Java Applet Java Basics - Anfänger-Themen 2
S Problem mit "Zeichnen auf Kommando" Java Basics - Anfänger-Themen 2
M Double Punkte Zeichnen Java Basics - Anfänger-Themen 7
S Funktionen zeichnen Java Basics - Anfänger-Themen 2
2 Bild auf JApplet zeichnen Java Basics - Anfänger-Themen 18
R 2D Grafik zeichnen Java Basics - Anfänger-Themen 4
F Line zeichnen und Werte ändern Java Basics - Anfänger-Themen 6
B Grafik zeichnen Java Basics - Anfänger-Themen 25
B Erste Schritte Weihnachtsbaum zeichnen Java Basics - Anfänger-Themen 6
N Per Button Kreis zeichnen Java Basics - Anfänger-Themen 8
T mehrere Punkte zeichnen ohne löschung Java Basics - Anfänger-Themen 4
J Für 3 Sekunden etwas bestimmtes zeichnen Java Basics - Anfänger-Themen 8
C Kreis nach Mausklick zeichnen Java Basics - Anfänger-Themen 5
C Auf Button-Druck zeichnen Java Basics - Anfänger-Themen 2
R Methoden Zeichnen auf Button-Druck durch Paint-Methode Java Basics - Anfänger-Themen 2
D Klassen Zeichnen von Figuren mittels vorgegebener Klasse Java Basics - Anfänger-Themen 3
J Schachbrett zeichnen Java Basics - Anfänger-Themen 9
J Innerhalb der Border zeichnen Java Basics - Anfänger-Themen 9
J Hoher Speicherverbrauch beim Zeichnen von Images aus einer ArrayList Java Basics - Anfänger-Themen 10
A Blitze mit Linien zeichnen Java Basics - Anfänger-Themen 15
U Kreis um Textfelder zeichnen Java Basics - Anfänger-Themen 4
R Balkendiagramm zeichnen Java Basics - Anfänger-Themen 14
J Bild anhand von Koordinaten zeichnen Java Basics - Anfänger-Themen 10
B GUI Parkplatz zeichnen Java Basics - Anfänger-Themen 10
S Mehrere Zeichnungen zeichnen Java Basics - Anfänger-Themen 16
A Linie Zeichnen Applet mit Double Wert Java Basics - Anfänger-Themen 3
F Image übertragen und zeichnen Java Basics - Anfänger-Themen 8
P Funktion zeichnen Java Basics - Anfänger-Themen 6
Q Zeichnen außerhalb der paint-methode Java Basics - Anfänger-Themen 7
F zeichnen in JPanel Java Basics - Anfänger-Themen 7
T Transparente Bilder mit Graphics zeichnen Java Basics - Anfänger-Themen 17
T Sterne zeichnen Java Basics - Anfänger-Themen 4
M Bilder laden und zeichnen Java Basics - Anfänger-Themen 3
G Polygon in Frame zeichnen Java Basics - Anfänger-Themen 3
S X Zeichnen als Muster ausgeben Java Basics - Anfänger-Themen 5
P Kurven zeichnen Java Basics - Anfänger-Themen 5
I dauerhaftes zeichnen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben