【发布时间】:2020-03-23 19:54:44
【问题描述】:
在 JavaFX 中,我想添加一个围绕卫星等物体运行的摄像头。我希望轨道沿着物体周围的水平和垂直线移动。我还希望相机始终指向矩阵中心的对象。
目前我尝试使用单位圆沿 x 和 y 轴移动相机。目前的代码如下所示:
<code>
int r = 10;
Slider nxSlider = new Slider(0, 360, 0);
nxSlider.valueProperty().addListener((observable, oldvalue, newvalue) ->
{
double i = newvalue.doubleValue();
camera.setTranslateX(r * Math.cos(Math.toRadians(i)));
camera.setTranslateY(r * Math.sin(Math.toRadians(i)));
rotateX.setAngle(Math.toDegrees(Math.cos(Math.toRadians(i))));
});
rotateZ.setAngle(0);
rotateY.setAngle(0);
rotateX.setAngle(0);
camera.setTranslateX(r);
camera.setTranslateZ(0);
camera.setTranslateY(0);
</code>
其中 rotateX、rotateY 和 rotateZ 是变换旋转。
我觉得我很迷茫,这个问题我已经有很长时间了。我的代码可能是错误的,如果有人能提出我如何继续的想法,我将非常感激。
【问题讨论】:
-
这不是一个编码问题,而是更多关于翻译的数学问题。您可能会在这里得到更好的回应:math.stackexchange.com
-
尝试将旋转的轴心设置为您旋转的对象的位置。
标签: java javafx camera javafx-3d