1

ペインに2つの楕円があり、1つには回転変換が適用されており(回転点は明らかに楕円自体ではありません:))、もう1つには適用されていません。次に、変換された楕円の中心から変換されていない楕円の中心まで線を引く必要があります。変換された楕円の座標が必要ですが、それらを取得する方法はありますか?(線画以外の計算にも必要です)

4

2 に答える 2

4

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();
    }
于 2012-07-03T11:06:39.917 に答える
0

質問で提供されたコードが不足しているので、私はあなたに数学的な答えを与えます:)

ellipse1どのセンターがどのセンターであるかを知っているX1としましょう。変換により、次のようになりますelipse2X2

elipse1 --> f(elipse1) = elipse1'

ellipse1'変換された楕円の中心座標( )を知りたい場合X1'は、次のようにします。

X1 --> f(X1) = X1` 

つまり、簡単に言うと、元のポイントに同じ変換を適用するだけで、X1変換された座標が得られますX1'。今、あなたがしなければならないのは、からX1'に線を引くことだけですX2

于 2012-07-02T21:17:59.513 に答える