猿问

javafx形状翻转后如何找到矩形的坐标

我用坐标(x = 100,y = 100,宽度 = 200,高度 = 100)绘制了一个矩形。然后我围绕中心转动这个矩形的形状。


this.rotation.addListener((obs, old, fresh) -> {

    Rotate rotate = new Rotate();

    rotate.setAngle((double) fresh - (double) old);

    rotate.setPivotX(x.getValue().doubleValue() + (width.getValue().doubleValue() / 2));

    rotate.setPivotY(y.getValue().doubleValue() + (height.getValue().doubleValue() / 2));

    shape.getTransforms().addAll(rotate);

});

现在如何找出形状的坐标?


BIG阳
浏览 147回答 1
1回答

哆啦的时光机

您可以使用该localToParent方法将点从坐标系转换Rectangle到父坐标系。Point2D topLeftInParent = shape.localToParent(shape.getX(), shape.getY());如果您只需要Rectangle显示 的父级中的 x/y 范围,您还可以使用getBoundsInParent:Bounds parentBounds = shape.getBoundsInParent();顺便说一句:我不建议在每次更改时添加新的转换。相反,我建议调整现有的轮换:Rotate rotate = new Rotate(0, shape.getX() + shape.getWidth()/2, shape.getX() + shape.getHeight()/2);shape.getTransforms().add(rotate);rotate.angleProperty().bind(this.rotation);
随时随地看视频慕课网APP

相关分类

Java
我要回答