【问题标题】:JavaFX coordinates confusionJavaFX 坐标混乱
【发布时间】:2015-05-25 21:46:43
【问题描述】:

我真的对 JavaFX 中不同的坐标概念感到困惑。

据我所知,坐标有3种:

  • getBoundsInLocal
  • getBoundsInParent
  • localToScene

给定一个节点“节点”,包含在一个组“组”中,递归地包含在一个场景“场景”中,“节点”到“组”和“节点”到“场景”的坐标是什么?我应该使用哪种方法来设置和修改坐标?

还有一个问题,对于像多边形这样的对象,在创建多边形时需要输入坐标。我应该输入什么坐标?此时的坐标属于哪个层次?

很抱歉提出这个简单的问题,但我花了将近一天时间搜索 JavaFX 文档但没有得到任何答案。我需要更多解释。有没有文件介绍这些概念?非常感谢!

【问题讨论】:

    标签: java javafx javafx-8


    【解决方案1】:

    这在API docs for the Node class 中有解释。基本上:

    • boundsInLocal 是节点在其自身坐标空间中的边界(在应用缩放和旋转等变换之前)。
    • boundsInParent 是节点在其父坐标空间中的边界(以及在应用转换之后)。
    • localToScenelocalToScreen 是可以为您提供节点在场景或屏幕坐标空间中的边界的方法。

    【讨论】:

    • 谢谢:D。我在 AnchorPane 中使用场景构建器发现了一些令人惊讶的东西。假设一个窗格属于一个 AnchorPane。当计算窗格的 LayoutX 时,它是从左到右的。但是 LayoutY 是从上到下计算的。为什么会发生这种情况?这是否总是或仅适用于某些窗格?怎么能用代码找出来?
    • 屏幕坐标总是有 Y 从上(0)到下(正)。您可能还想看看 ScenicView。它允许您像 Scene Builder 一样检查您的 GUI,但在您的应用程序运行时:fxexperience.com/scenic-view
    【解决方案2】:

    Node documentation 描述了这些差异。你应该看看jewelsea's demo,它对理解 JavaFX 中的布局边界很有帮助。

    多边形是Shape。您在本地添加坐标,i。 e. 0/0 是 Shape 内部的坐标 0/0。可以使用setLayoutX(和Y)和setTranslateX(和Y)方法将形状本身放置在场景中。

    【讨论】:

    • 非常好的例子!谢谢:D
    猜你喜欢
    • 2023-04-06
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多