旋转后如何计算物体的实际位置?

时间:2019-12-22 18:12:20

标签: java javafx rotation

我有三个物体

var triangle1 = new Path(new MoveTo(0, 400), new LineTo(0, 300), new LineTo(100, 300), new LineTo(0, 400));
var triangle2 = new Path(new MoveTo(0, 400), new LineTo(0, 300), new LineTo(100, 300), new LineTo(0, 400));
var triangle3 = new Path(new MoveTo(0, 400), new LineTo(0, 300), new LineTo(100, 300), new LineTo(0, 400));

进行此转换。

triangle2.getTransforms().add(new Rotate(30, 540, 540));
triangle3.getTransforms().add(new Rotate(115, 540, 540));

但是,当我打电话

System.out.println(((MoveTo)triangle1.getElements().get(0)).getX());
System.out.println(((MoveTo)triangle2.getElements().get(0)).getX());
System.out.println(((MoveTo)triangle3.getElements().get(0)).getX());

在所有情况下都将返回0。 但是,随着旋转,triangle2triangle3的位置发生了变化。

请问如何计算新坐标?

谢谢

更新

只需使用localToParent

System.out.println(triangle2.localToParent(0, 400).getX());
System.out.println(triangle3.localToParent(0, 400).getX());

0 个答案:

没有答案
相关问题