Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
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.
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.
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.
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.