gpt4 book ai didi

java - 在 Pane 或区域内使用备用坐标系

转载 作者:行者123 更新时间:2023-11-30 10:01:19 25 4
gpt4 key购买 nike

关闭。这个问题需要debugging details .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

2年前关闭。




Improve this question




我正在尝试设置一个 Pane ,以便放置在该 Pane 中的对象使用 JavaFX“场景像素”以外的坐标系。例如,
我的坐标系中的 1024 个单位可能对应于 1 个“场景像素”
(JavaFX 使用的单位有更好的名称吗?)。但是,那
我添加到 Pane 中的对象内的对象需要
在“场景像素”中工作(例如;标签似乎想要在
渲染文本时的像素位置)。

下面的要点显示了我正在寻找的设置的简单示例,但它有问题。

我创建了一个添加转换的容器组(实际上是一个 Pane )
这样 1 个单位 == 32 个像素。我将对象添加到此容器中。每个
我添加的对象有一个指定大小和位置的外部 Pane
以单位为单位,以及一个仅用于反转比例的内部 Pane
外部 Pane 的转换。在这个内部 Pane 中,我
可以添加标签等,这些都可以正确渲染。

我在转换之间设置了绑定(bind),以便我可以有效地
通过调整组容器上的变换来缩放和平移 Pane 内的 View 。但是:有关此设置的某些内容似乎令人困惑
JavaFX里面的东西;我在屏幕上看到的结果似乎没有
与 JavaFX 认为的各种对象的界限相匹配。这
当我尝试执行设置边框等操作时会导致视觉问题
对象,并且似乎也混淆了 ScenicView。

https://gist.github.com/io7m/20b071e11da2dcd96896a43fad6df644

这是选择容器组的照片(看起来正确):

enter image description here

这是选择了底部对象的外部 Pane 的照片:

enter image description here

请注意,尽管对象实际上在屏幕上呈现为右
大小(浅灰色框之一),ScenicView 似乎认为
对象的边界是 1x1:它们是 1x1,但表达时它们是 1x1
在我的自定义坐标系中,而不是在 JavaFX“场景像素”中。您在屏幕截图中几乎看不到这一点:在对象的左上角有一个微小的单个像素,ScenicView 正在突出显示它认为的边界是什么。

这是选择了底部对象的内部 Pane 的照片:

https://ataxia.io7m.com/2019/08/10/view2.png

从边界包含标签和
没有其他的。

我在这里做错了吗?我不知道我是否基本上在滥用
变换与否。

最佳答案

我在我的项目中做一些非常相似的事情。与您的方法相反,我没有使用 Pane 。我只使用组,到目前为止还没有发现任何问题。也许 ScenicView 中只是一个错误。

我不知道这是否也与您相关,但至少在我的情况下,我还必须将反向缩放应用于所有相关的形状属性,例如笔划宽度。我只想缩放外部几何图形的位置,但我仍然想以像素为单位指定笔划宽度。

这很容易变得非常复杂,但从技术上讲,这种方法我没有遇到任何问题。

关于java - 在 Pane 或区域内使用备用坐标系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57461988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com