我用坐标(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);});现在如何找出形状的坐标?
1 回答
哆啦的时光机
TA贡献1779条经验 获得超6个赞
您可以使用该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);
添加回答
举报
0/150
提交
取消