Я определил камеру, которая вращается вокруг начала сцены, с осью вращения X и осью вращения Y.
Я хотел бы, чтобы ось X определяла "высоту" моей камеры оси Yтак что он вращается вокруг данной широты на сфере.
Я определил вращение так:
_cameraTranslate = new Translate(0, 0, -10);
_cameraRotateX = new MyRotate(0, 0, 0, 10, Rotate.X_AXIS);
_cameraRotateY = new MyRotate(0, 0, 0, 10, Rotate.Y_AXIS);
_camera.getTransforms().addAll(_cameraTranslate, _cameraRotateX, _cameraRotateY);
И поверните их так:
private void onMouseDragged(MouseEvent e) {
_cameraRotateX.setAngle360(_cameraRotateX.getAngle() - (-e.getSceneY() + _mouseOldY));
_cameraRotateY.setAngle360(_cameraRotateY.getAngle() - (e.getSceneX() - _mouseOldX));
_mouseOldX = e.getSceneX();
_mouseOldY = e.getSceneY();
}
Это то, что происходит, когда я вращаюсь, меняя мир, вместо того чтобы держать оси X параллельно линии, если это имеет смысл.