簡體   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