所以我试图弄清楚JavaFX坐标系是如何工作的,并获得ScatterChart原点的坐标。我正在制作一个视频/动画编辑器,我决定使用ScatterChart创建时间轴,其中节点是媒体(图像,视频或音频)拖动到它(类似于Windows Movie Maker)。 ScatterChart 放置在ScrollPane 中,以便用户可以缩放和平移时间轴。 要显示指示玩家位置的线,我需要时间线的开始和结束的坐标,以便我可以在图表的背景中向窗格添加一条线。 无论我尝试什么,我都无法获得原点的坐标。
我试图获取x轴并在图表上找到它的位置,但它不起作用。我甚至尝试在图表中添加一个点并找到它的节点位置,但这也给出了0,0位置。
xAxis.localToParent(0,0) // prints 0, 0
xAxis.localToScene(0,0) // prints 0, 0
xAxis.localToScreen(0,0) // gives null
有没有人能提供解决方案,也许解释一下如何计算JavaFX中的坐标?
答案 0 :(得分:0)
我通过添加图表数据解决了这个问题,图表开头的一个点,X坐标0.这个点的节点是一个半径为0或1的圆,这是我用来获取X坐标的图表开始。获得此偏移量的函数是:
Bounds boundsInScene = point.getNode().localToScene(point.getNode().getBoundsInLocal(), true);
return parent.sceneToLocal(boundsInScene).getMinX();
父级是图表本身。只需将起始偏移量添加到getValueForDisplay函数的结果中,并以max X坐标作为参数,即可获取结束坐标。