在JavaFX中表示具有负协调的对象

时间:2017-11-20 14:54:21

标签: java javafx coordinates scene

我必须在屏幕上代表对象(比方说圈子)。我已经列出了这些列表,并给出了它们的坐标。

问题是给定对象还可以包含x和y的负值。正如我们在JavaFX中所知,坐标系从左上角开始从0开始,基本上只有正值。

有什么方法能够以某种方式看到同样处于消极方面的圈子吗?

滚动可以解决吗?

1 个答案:

答案 0 :(得分:0)

我建议添加你自己的'轴'(无论你是否在屏幕上显示它们是无关紧要的,但它有助于将它们视为这样),原点(0,0)在某处屏幕中间。如果你的画布是500x500,那么你的原点是(250,250)。然后,对于所有对象,可以通过向其添加原点坐标在屏幕上显示其“原始”坐标。因此,中心位于(-10,50)的圆圈将显示在(240,200)处。

如果屏幕上仍有对象,我建议添加鼠标监听器以添加单击并拖动滚动类型。以下是如何在伪代码中执行此操作:

在鼠标按下时,在按下鼠标时记录屏幕坐标并将其保存到变量dragStartPoint等。

在“鼠标向上”上,记录拖动后释放鼠标时的屏幕坐标,将其命名为dragEndPoint。从dragEndPoints中减去dragStartPoint的坐标,并将它们的差值应用于原点的坐标和其余对象。

注意,只要你有这个点击并拖动滚动,你仍然可以在(0,0)开始你的原点!祝你好运,如果你需要鼠标监听器的示例代码,我可以稍后编辑这篇文章。

您还可以通过更改onMouseMoved而不是onMouseUp上的所有内容来使其响应更快,您只需要确保在onMouseMoved中按下鼠标,这样它就不会一直滚动。