JavaFX将大小不同的节点缩放到相同的大小

我正在窗格上绘制大小不同的地图。有些看起来不错,其他的只是呈现为小形状,您必须放大才能将其缩放到合适的大小。我希望这些地图在每次初始化时都显示为大致相同的大小(因此,我不必手动缩放每个地图)。我已经得到Point2D的点minmaxxy他们绘制上同样适用于地图(这是一个窗格的Group多边形)。如何设置minPointofPaneminPointof之间的距离Group还是我走错路了?

编辑:

 public void setDistance(Group map, Point2D paneSize, Point2D mapSize){
    //um diese distance verschieben, if distance > 10px (scale)
    double d = paneSize.distance(mapSize);
    double scale = ??
    map.setScaleX(scale);
    map.setScaleY(scale);
}

这就是我计划这样做的方式,尽管不确定那一行。

法比安

为了将节点缩放到父节点的大小,大小的差异并不重要。重要的是尺寸的商,更确切地说是高度和宽度的商的最小值(假设您要完全沿一个方向填充父级)。

例子:

@Override
public void start(Stage primaryStage) {
    Text text = new Text("Hello World!");

    Pane root = new Pane();
    root.getChildren().add(text);
    InvalidationListener listener = o -> {
        Bounds rootBounds = root.getLayoutBounds();
        Bounds elementBounds = text.getLayoutBounds();

        double scale = Math.min(rootBounds.getWidth() / elementBounds.getWidth(),
                rootBounds.getHeight() / elementBounds.getHeight());
        text.setScaleX(scale);
        text.setScaleY(scale);

        // center the element
        elementBounds = text.getBoundsInParent();
        double cx = (elementBounds.getMinX() + elementBounds.getMaxX()) / 2;
        double cy = (elementBounds.getMinY() + elementBounds.getMaxY()) / 2;
        text.setTranslateX(rootBounds.getWidth() / 2 - cx + text.getTranslateX());
        text.setTranslateY(rootBounds.getHeight() / 2 - cy + text.getTranslateY());
    };

    root.layoutBoundsProperty().addListener(listener);
    text.layoutBoundsProperty().addListener(listener);

    Scene scene = new Scene(root);

    primaryStage.setScene(scene);
    primaryStage.show();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Imagemagick将图像缩放到桌面大小,无边界

来自分类Dev

将背景图像缩放到元素大小

来自分类Dev

使用Imagemagick将图像缩放到桌面大小,无边界

来自分类Dev

SVG 将路径的填充模式缩放到路径大小

来自分类Dev

将帖子缩放到屏幕大小 [div 对屏幕来说太大了]

来自分类Dev

UIScrollView仅缩放到UIImageView的大小

来自分类Dev

在不同的缩放级别上,使CSS向右箭头的大小保持相同

来自分类Dev

为什么在WPF中可比较的视图框中将字母缩放到不同大小?

来自分类Dev

ggnetwork缩放边缘和节点(顶点)的大小独立(不同的几何图形,不同的缩放比例)

来自分类Dev

如何将几张图像重新缩放为相同大小

来自分类Dev

Java-将JPanel设置为固定大小并将其缩放到窗口

来自分类Dev

将图像缩放到窗口大小,同时保持彼此的相对位置

来自分类Dev

将整数类型缩放为不同的位大小

来自分类Dev

使我的网站缩放到CSS中的分辨率大小

来自分类Dev

使UI按钮的图像背景缩放到iPhone大小

来自分类Dev

使UI按钮的图像背景缩放到iPhone大小

来自分类Dev

如何使用CSS动画使div缩放到大于原始大小?

来自分类Dev

UIScrollview宽度不能按比例缩放到iPhone大小

来自分类Dev

GKE将大小不同的节点添加到集群中

来自分类Dev

JavaFX-将阶段大小绑定到根节点的首选大小

来自分类Dev

JavaFX-将阶段大小绑定到根节点的首选大小

来自分类Dev

将两个相同大小的盒子与不同的原点对齐

来自分类Dev

缩放时保持文字大小相同

来自分类Dev

SpriteKit-将节点从右到左缩放到X

来自分类Dev

如何缩放块元素以在不同的移动屏幕上显示相同的大小?

来自分类Dev

如何使用pdf.js确定pdf的大小,以便可以缩放到屏幕大小?

来自分类Dev

在启动画面上将png调整大小或缩放到指定大小

来自分类Dev

将 javafx 中的多边形缩放到其父级

来自分类Dev

Android将多个不同大小的位图绘制到相同大小的画布

Related 相关文章

  1. 1

    使用Imagemagick将图像缩放到桌面大小,无边界

  2. 2

    将背景图像缩放到元素大小

  3. 3

    使用Imagemagick将图像缩放到桌面大小,无边界

  4. 4

    SVG 将路径的填充模式缩放到路径大小

  5. 5

    将帖子缩放到屏幕大小 [div 对屏幕来说太大了]

  6. 6

    UIScrollView仅缩放到UIImageView的大小

  7. 7

    在不同的缩放级别上,使CSS向右箭头的大小保持相同

  8. 8

    为什么在WPF中可比较的视图框中将字母缩放到不同大小?

  9. 9

    ggnetwork缩放边缘和节点(顶点)的大小独立(不同的几何图形,不同的缩放比例)

  10. 10

    如何将几张图像重新缩放为相同大小

  11. 11

    Java-将JPanel设置为固定大小并将其缩放到窗口

  12. 12

    将图像缩放到窗口大小,同时保持彼此的相对位置

  13. 13

    将整数类型缩放为不同的位大小

  14. 14

    使我的网站缩放到CSS中的分辨率大小

  15. 15

    使UI按钮的图像背景缩放到iPhone大小

  16. 16

    使UI按钮的图像背景缩放到iPhone大小

  17. 17

    如何使用CSS动画使div缩放到大于原始大小?

  18. 18

    UIScrollview宽度不能按比例缩放到iPhone大小

  19. 19

    GKE将大小不同的节点添加到集群中

  20. 20

    JavaFX-将阶段大小绑定到根节点的首选大小

  21. 21

    JavaFX-将阶段大小绑定到根节点的首选大小

  22. 22

    将两个相同大小的盒子与不同的原点对齐

  23. 23

    缩放时保持文字大小相同

  24. 24

    SpriteKit-将节点从右到左缩放到X

  25. 25

    如何缩放块元素以在不同的移动屏幕上显示相同的大小?

  26. 26

    如何使用pdf.js确定pdf的大小,以便可以缩放到屏幕大小?

  27. 27

    在启动画面上将png调整大小或缩放到指定大小

  28. 28

    将 javafx 中的多边形缩放到其父级

  29. 29

    Android将多个不同大小的位图绘制到相同大小的画布

热门标签

归档