Java FX 3D kamera drehen oder lieber die Gruppe drehen

MrTroble

Bekanntes Mitglied
Hallo leute heute
dreht :lol: es sich um
einen Code den ich geschrieben habe um
meine welt zu drehen bzw damit man sich in der Welt umschauen kann

[JAVA]
scene.setOnMouseMoved(new EventHandler<MouseEvent>() {
@Override public void handle(MouseEvent me) {
mouseOldX = mousePosX;
mouseOldY = mousePosY;
mousePosX = me.getSceneX();
mousePosY = me.getSceneY();
mouseDeltaX = (mousePosX - mouseOldX);
mouseDeltaY = (mousePosY - mouseOldY);


cameraXform.ry.setAngle(cameraXform.ry.getAngle() -
mouseDeltaX*ROTATION_SPEED); //
cameraXform.rx.setAngle(cameraXform.rx.getAngle() +
mouseDeltaY*ROTATION_SPEED); // -

Logger.Debug(cameraXform.ry + " " + cameraXform.rx, false);
if(cameraXform.rx.getAngle() > 450.0){
cameraXform.rx.setAngle(450.0);
}
if(cameraXform.rx.getAngle() < 362.0){
cameraXform.rx.setAngle(362.0);
}
}
});
}
[/code]

gute Idee oder nich
das solten eigentlich zylinder sein mit 0.2 abstand

btnb.jpg
 

Major_Sauce

Bekanntes Mitglied
Der Herr troble mal wieder :D
Es macht wohl Sinn eher die Kamera zu drehen, denn dafür ist die ja schließlich auch gemacht ?!
Dass des Zylinder sein sollen hätte ich nicht erkannt, da passt doch was nicht, sieht auf jeden Fall total krank aus.
Was kameraXForm ist kann ich hier zwar nicht rauslesen, aber auf jeden Fall die Kamera drehen würde ich sagen.

mfg Major
 

MrTroble

Bekanntes Mitglied
Jo ich mal wieder. Ich hab noch 1000 ungeklärte Fragen auf Lager.
Ich hab auch an die Kamera gedacht, aber manchmal erkennt man die Zylinde.
Dafür muss die Kamera schon perfekt stehen.
Ich hab noch einen Vorschlag ...
Java:
camera.setRotationAxis(new Point3D(camera.getRotationAxis().getX() - mouseDeltaX*ROTATION_SPEED, camera.getRotationAxis().getY() + mouseDeltaX*ROTATION_SPEED, 0));
Aber wenn ich die Maus bewege, passiert gar nichts;:)confused:
 
Zuletzt bearbeitet von einem Moderator:

Major_Sauce

Bekanntes Mitglied
Öhm, sollte normalerweise klar sein dass nix passiert.
Neu bei JavaFX, was ?

Das ganze funktioniert so:
Die Kamera selbst kann nur eine Rotation speichern, so ist das eben, dabei setzt man eine Achse, das ist was du gemacht hast, und dann setzt man die Rotation, das würde dann so gehen:

Java:
		camera.setRotate(10);

setRotationAxis besagt nur um welche Achse du es drehen willst.
Dafür verwendet man außerdem für gewöhnlich Rotate, sieht dann so aus:

Java:
		camera.setRotationAxis(Rotate.X_AXIS);
		//Und dann die Rotation in Grad hinterher
		camera.setRotate(10);

Du solltest dir insgesamt mal die Transforms von Nodes anschauen, dann wirst du da auf jeden Fall einfachere Varianten finden, Stichwort Rotate

mfg Major
 

MrTroble

Bekanntes Mitglied
ja aber ich will es ja in x und y drehen

und das ist mir eigentlich bekannt aber ich dachte - weil Point3D
 
Zuletzt bearbeitet:

Major_Sauce

Bekanntes Mitglied
Wie gesagt, schau dir Rotates an.
Wenn du willst können wir uns auch mal für nen Stundchen zusammensetzen und ich erklär dir das ganze mal...

mfg Major
 

Major_Sauce

Bekanntes Mitglied
was heißt denn eiert ?
Ne genauere Beschreibung wäre hilfreich.
Ich gebe dir mal meinen Code, damit kannst du auch mehreren Objekten die gleiche Rotation geben.

Java:
package units;

import javafx.scene.Node;
import javafx.scene.transform.Rotate;

public class Rotation {

	private Rotate xRotation = new Rotate(0, Rotate.X_AXIS);
	private Rotate yRotation = new Rotate(0, Rotate.Y_AXIS);
	private Rotate zRotation = new Rotate(0, Rotate.Z_AXIS);
	
	public Rotation(Node node){
		build(0, 0, 0);
		addToNode(node);
	}
	
	public Rotation(double xAngle, double yAngle, double zAngle, Node node){
		build(xAngle, yAngle, zAngle);
		addToNode(node);
	}
	
	public Rotation(){
		build(0, 0, 0);
	}
	
	public Rotation(double xAngle, double yAngle, double zAngle){
		build(xAngle, yAngle, zAngle);
	}
	
	public void build(double xAngle, double yAngle, double zAngle){
		setXRotation(xAngle);
		setYRotation(yAngle);
		setZRotation(zAngle);
	}
	
	@Override
	public String toString() {
		return("(" + getXRotation() + " | " + getYRotation() + " | " + getZRotation() + ")");
	}
	
	public void addToNode(Node node){
		node.getTransforms().addAll(xRotation, yRotation, zRotation);
	}
	
	//Setters
	public void setXRotation(double angle){
		xRotation.setAngle(angle);
	}
	
	public void setYRotation(double angle){
		yRotation.setAngle(angle);
	}
	
	public void setZRotation(double angle){
		zRotation.setAngle(angle);
	}
	
	public void setRotation(double xAngle, double yAngle, double zAngle){
		xRotation.setAngle(xAngle);
		yRotation.setAngle(yAngle);
		zRotation.setAngle(zAngle);
	}
	
	public void translateRotation(double xAngle, double yAngle, double zAngle){
		xRotation.setAngle(getXRotation() + xAngle); 
		yRotation.setAngle(getYRotation() + yAngle); 
		zRotation.setAngle(getZRotation() + zAngle); 
	}
		
	public void setPivot(Location location){
		xRotation.setPivotX(location.getPixelPosX());
		yRotation.setPivotX(location.getPixelPosX());
		zRotation.setPivotX(location.getPixelPosX());
		xRotation.setPivotY(location.getPixelPosY());
		yRotation.setPivotY(location.getPixelPosY());
		zRotation.setPivotY(location.getPixelPosY());
		xRotation.setPivotZ(location.getPixelPosZ());
		yRotation.setPivotZ(location.getPixelPosZ());
		zRotation.setPivotZ(location.getPixelPosZ());
	}
	
	//Getters
	public double getXRotation(){
		return xRotation.getAngle();
	}
	
	public double getYRotation(){
		return yRotation.getAngle();
	}
	
	public double getZRotation(){
		return zRotation.getAngle();
	}
	
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Lukas2904 Swing ID von WLAN Kamera anzeigen lassen. AWT, Swing, JavaFX & SWT 2
J JavaFX Kamera im Programm öffnen AWT, Swing, JavaFX & SWT 6
M Kamera in Java Swing einbinden AWT, Swing, JavaFX & SWT 4
B JavaFX Problem bei Kamera / Group, gesamte Scene bewegt sich mit AWT, Swing, JavaFX & SWT 0
K 3D-Grafik Eigene "Kamera" AWT, Swing, JavaFX & SWT 2
onek2705 ButtonArray drehen AWT, Swing, JavaFX & SWT 5
N Bild Drehen AWT, Swing, JavaFX & SWT 1
B JavaFX Bild um die eigene Achse drehen lassen AWT, Swing, JavaFX & SWT 0
S JavaFX Drehen um eigene Achse AWT, Swing, JavaFX & SWT 2
J Images drehen AWT, Swing, JavaFX & SWT 5
B Graphics2D Componente Drehen AWT, Swing, JavaFX & SWT 2
TheSorm Rectangle drehen AWT, Swing, JavaFX & SWT 9
HoloYoitsu Swing JButton in verschiedenen Winkeln drehen AWT, Swing, JavaFX & SWT 0
C Rechteck drehen AWT, Swing, JavaFX & SWT 1
B 2D-Grafik String drehen/platzieren/formatieren in bestimmten Bereich AWT, Swing, JavaFX & SWT 1
L 2D-Grafik Bild in Richtung Maus drehen AWT, Swing, JavaFX & SWT 18
F 2D-Grafik Punkte um Mittelpunkt drehen AWT, Swing, JavaFX & SWT 11
T Bild drehen ohne Resize AWT, Swing, JavaFX & SWT 3
S Objekt durch Tasteneingabe mehrmals drehen AWT, Swing, JavaFX & SWT 9
M Rechtecke drehen AWT, Swing, JavaFX & SWT 15
P JComponent / JLabel drehen (Rotation) AWT, Swing, JavaFX & SWT 2
S Bild in Richtung Mauszeiger drehen AWT, Swing, JavaFX & SWT 2
D Swing Spielfeld drehen von Pentago endet in einer Katastrophe AWT, Swing, JavaFX & SWT 2
Jats 2D-Grafik Quadrat/Dreieck um Mittelpunkt drehen AWT, Swing, JavaFX & SWT 10
B 2D-Grafik Zeilen drehen im JEditorPane AWT, Swing, JavaFX & SWT 3
G Grafikobjekt drehen AWT, Swing, JavaFX & SWT 6
M Rechteck "umdrehen"/über die Kante drehen AWT, Swing, JavaFX & SWT 4
G Swing JLabel drehen für Kartenspiel AWT, Swing, JavaFX & SWT 9
R Bild drehen UND skalieren (Image bzw BufferedImage) AWT, Swing, JavaFX & SWT 5
multiholle Swing Panel um 90° drehen AWT, Swing, JavaFX & SWT 5
O JLabel um 90 Grad drehen ? AWT, Swing, JavaFX & SWT 9
E Bild drehen AWT, Swing, JavaFX & SWT 4
R Rechteck drehen! AWT, Swing, JavaFX & SWT 4
S BufferedImage drehen AWT, Swing, JavaFX & SWT 3
N Formen drehen und auf JPanel zeichnen AWT, Swing, JavaFX & SWT 6
S wie Jpanel drehen AWT, Swing, JavaFX & SWT 4
J swing komponenten drehen? AWT, Swing, JavaFX & SWT 11
K Graphics drehen? AWT, Swing, JavaFX & SWT 7
B Ein Image Objekt drehen? AWT, Swing, JavaFX & SWT 2
N Bild drehen (AffinTransform etc.) AWT, Swing, JavaFX & SWT 2
N Bild drehen AWT, Swing, JavaFX & SWT 7
thE_29 Bild drehen AWT, Swing, JavaFX & SWT 6
C Koordinatensystem drehen AWT, Swing, JavaFX & SWT 3
B Text drehen AWT, Swing, JavaFX & SWT 4
S GUI Entwicklung: GUI Builder oder doch lieber händisch? AWT, Swing, JavaFX & SWT 17
Y Spielfeld mit paintComponent oder doch lieber anders? AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen

Neue Themen


Oben