Hallo zusammen,
ich versuche derzeit in JAVAFX Line-Objekte (Geraden) von einer 2-dimensionalen Anordnung in eine 3-dimensionale Anordnung zu transformieren.
Ich möchte in einem Koordinatensystem, welches ich selber im bestehenden Koordinatensystem definiere,
solche Geraden zeichnen.
Mit Hilfe der perspektive Camera kann man eine 3-Dimensionale Ansicht schaffen.
Ich zeichne als Line-Objekte zunächst die X-Achse und die Y-Achse und füge diese zu einer Group hinzu.
Meine X-Achse verläuft dabei von links/mitte nach rechts/mitte.
Die Y-Achse verläuft von unten/mitte nach oben/mitte.
Um die Z-Achse zu zeichnen, zeichne ich die X-Achse nochmals und rotiere diese um meinen neuen Koordinatenmittelpunkt (Mittelpunkt der neuen X- und Y-Achse, das ist bei mir X = 380, Y=380, Z=0) um einen Winkel von 90 Grad im Gradmaß um die Y-Achse.
Damit habe ich alle drei gewünschten Achsen gezeichnet. So weit, so gut.
Ich kann nun mit Hilfe der perspektive Camera und Rotationen um dieses Koordinatensystem in allen
drei Achsen schwenken.
Wenn ich nun eine Gerade im dreidimensionalen Raum zeichnen möchte, so zeichne ich diese zunächst einfach auf meine X-Achse. Jetzt liegt diese auf der X-Achse in 2-dimensionaler Form.
Ich setze voraus, dass mir ein Azimut und ein Höhenwinkel vor liegt, mit dem ich durch Rotationen die Gerade in die gewünschte Position bringen kann.
In JAVAFX muss ein "Anchor"-Punkt (Pivot-Punkt) gewählt werden, wenn nicht um den ursprünglichen
Koordinatenursprung gedreht werden soll. Da ich um den Ursprung meines Koordinatensystems drehen
möchte wähle ich den Punkt Pivot = (X=380, Y=380, Z = 0).
Dieser wird übrigens auch für die Rotation der perspektiv Camera verwendet, was super funktioniert.
Nach meinem Verständnis muss ich nun zunächst die Gerade, die zu Begin in der X-Achse liegt um die Z-Achse drehen und zwar um den Höhenwinkel (zwischen 0 und 90 Grad).
Ist dies getan muss das Ergebnis um die Y-Achse um den Azimutwinkel gedreht werden (zwischen 0 und 360 Grad).
Wenn ich nur eine der beiden Rotationen durchführe stimmen die Teilergebnisse stets, will heißen, dass sich die Gerade korrekt verschoben hat.
Werden jedoch beide Transformationen durchgeführt, kommt ein nicht nachvollziehbarer Mist heraus.
Hat jemand vielleicht schon Erfahrungen mit JAVAFX und solchen Rotationen gemacht.
Ich habe schon ewig im Internet und in diesem Forum gesucht, aber nichts verwertbares gefunden.
Daher bin ich für Hilfe sehr dankbar!
Viele Grüße
Paddi
ich versuche derzeit in JAVAFX Line-Objekte (Geraden) von einer 2-dimensionalen Anordnung in eine 3-dimensionale Anordnung zu transformieren.
Ich möchte in einem Koordinatensystem, welches ich selber im bestehenden Koordinatensystem definiere,
solche Geraden zeichnen.
Mit Hilfe der perspektive Camera kann man eine 3-Dimensionale Ansicht schaffen.
Ich zeichne als Line-Objekte zunächst die X-Achse und die Y-Achse und füge diese zu einer Group hinzu.
Meine X-Achse verläuft dabei von links/mitte nach rechts/mitte.
Die Y-Achse verläuft von unten/mitte nach oben/mitte.
Um die Z-Achse zu zeichnen, zeichne ich die X-Achse nochmals und rotiere diese um meinen neuen Koordinatenmittelpunkt (Mittelpunkt der neuen X- und Y-Achse, das ist bei mir X = 380, Y=380, Z=0) um einen Winkel von 90 Grad im Gradmaß um die Y-Achse.
Damit habe ich alle drei gewünschten Achsen gezeichnet. So weit, so gut.
Ich kann nun mit Hilfe der perspektive Camera und Rotationen um dieses Koordinatensystem in allen
drei Achsen schwenken.
Wenn ich nun eine Gerade im dreidimensionalen Raum zeichnen möchte, so zeichne ich diese zunächst einfach auf meine X-Achse. Jetzt liegt diese auf der X-Achse in 2-dimensionaler Form.
Ich setze voraus, dass mir ein Azimut und ein Höhenwinkel vor liegt, mit dem ich durch Rotationen die Gerade in die gewünschte Position bringen kann.
In JAVAFX muss ein "Anchor"-Punkt (Pivot-Punkt) gewählt werden, wenn nicht um den ursprünglichen
Koordinatenursprung gedreht werden soll. Da ich um den Ursprung meines Koordinatensystems drehen
möchte wähle ich den Punkt Pivot = (X=380, Y=380, Z = 0).
Dieser wird übrigens auch für die Rotation der perspektiv Camera verwendet, was super funktioniert.
Nach meinem Verständnis muss ich nun zunächst die Gerade, die zu Begin in der X-Achse liegt um die Z-Achse drehen und zwar um den Höhenwinkel (zwischen 0 und 90 Grad).
Ist dies getan muss das Ergebnis um die Y-Achse um den Azimutwinkel gedreht werden (zwischen 0 und 360 Grad).
Wenn ich nur eine der beiden Rotationen durchführe stimmen die Teilergebnisse stets, will heißen, dass sich die Gerade korrekt verschoben hat.
Werden jedoch beide Transformationen durchgeführt, kommt ein nicht nachvollziehbarer Mist heraus.
Hat jemand vielleicht schon Erfahrungen mit JAVAFX und solchen Rotationen gemacht.
Ich habe schon ewig im Internet und in diesem Forum gesucht, aber nichts verwertbares gefunden.
Daher bin ich für Hilfe sehr dankbar!
Viele Grüße
Paddi