我在一个窗格上有 2 个椭圆,一个应用了旋转变换(旋转点显然不是椭圆本身:)),另一个没有。现在我需要从变换椭圆的中心到未变换椭圆的中心画一条线。所以我需要转换后的椭圆的坐标,有没有办法检索这些?(除了线条图之外,我还需要它们进行其他计算)
问问题
1380 次
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
,elipse2
哪个中心是X2
。转换为您提供以下内容
elipse1 --> f(elipse1) = elipse1'
如果您想知道变换后的椭圆ellipse1'
中心坐标 ( X1'
),只需执行以下操作:
X1 --> f(X1) = X1`
因此,简而言之,只需将相同的变换应用于您的原始点X1
,您将获得变换后的坐标X1'
。现在你所要做的就是从X1'
到画一条线X2
于 2012-07-02T21:17:59.513 回答