繁体   English   中英

如何在javafx2中获取变换形状的坐标?

[英]how to get the coordinates of a transformed shape in javafx2?

我在一个窗格上有两个椭圆,一个应用了旋转变换(旋转点显然不是椭圆本身:)),另一个没有。 现在我需要从变换椭圆的中心到未变换椭圆的中心绘制一条线。 所以我需要变换椭圆的坐标,有没有办法检索那些? (我也需要它们用于除线条图之外的其他计算)

使用localToParent方法。 例:

    @Override
    public void start(Stage stage) {
        stage.setTitle(VersionInfo.getRuntimeVersion());
        Group root = new Group();

        // ellypsis with center in 100,100
        Arc ellypsis = ArcBuilder.create().centerX(100).centerY(100).length(360).radiusX(100).radiusY(50).fill(Color.TRANSPARENT).stroke(Color.RED).build();
        // rotate
        ellypsis.getTransforms().add(new Rotate(50, 50, 45));

        // find out where is 100,100 in rotated ellypsis
        Point2D localToParent = ellypsis.localToParent(100,100);

        // draw line from that point
        Line line = new Line(localToParent.getX(), localToParent.getY(), 200, 200);
        root.getChildren().addAll(ellypsis, line);
        stage.setScene(new Scene(root, 300, 250));
        stage.show();
    }

鉴于问题中缺少代码,我会给你一个数学答案:)

假设你有ellipse1这中心X1elipse2该中心X2 转型为您提供以下内容

elipse1 --> f(elipse1) = elipse1'

如果你想知道变换的椭圆椭圆1 ellipse1'中心坐标( X1' ),只需执行以下操作:

X1 --> f(X1) = X1` 

因此,简而言之,只需将相同的变换应用于原点X1 ,您将获得变换后的坐标X1' 现在你所要做的就是画一条从X1'X2的线

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM