java - JavaFX:如何在调整一个/两个多边形的大小(缩放)时保持两个多边形之间的距离不变?
问题描述
我的 GUI 中有一个六边形蜂窝,它们的大小不断变化。我需要找到一种方法来同时缩放这些形状而不会相互重叠。
我发现边缘之间的距离必须保持不变,但仅此而已。我真的需要帮助将其翻译成代码。任何帮助将不胜感激!我目前正在使用场景生成器。我试图将多边形中心之间的距离绑定到其中一个多边形。这是我的代码(不起作用):
public class Controller implements Initializable {
@FXML
private AnchorPane root ;
@FXML
private Polygon poly1;
@FXML
private Polygon poly2;
@Override
public void initialize(URL location, ResourceBundle resources) {
DoubleProperty distanceProperty = new SimpleDoubleProperty();
ChangeListener<Number> changeListener = (observable, oldValue, newValue) -> {
Point2D p1 = new Point2D(poly1.getLayoutX(), poly1.getLayoutY());
Point2D p2 = new Point2D(poly2.getLayoutX(), poly2.getLayoutY());
distanceProperty.set(p1.distance(p2));
};
poly1.layoutXProperty().addListener(changeListener);
poly2.layoutXProperty().addListener(changeListener);
poly1.layoutYProperty().addListener(changeListener);
poly2.layoutYProperty().addListener(changeListener);
poly1.layoutYProperty().bind(distanceProperty);
poly1.layoutXProperty().bind(distanceProperty);
// changing the size of poly1
double initialScaleX = poly1.getScaleX();
double initialScaleY = poly1.getScaleY();
poly1.setScaleX(initialScaleX*2.0);
poly1.setScaleY(initialScaleY*2.0);
}
}
解决方案
推荐阅读
- typescript - Testcafe 找不到包含在迭代器中的测试
- javascript - 单击时文本区域中的光标位置
- java - java - 多次绑定相同的pdf时如何减小输出pdf的大小
- javascript - 如何在 Youtube 上记住用户在音频时间线上的点?
- python - histogram2d 和 pcolormesh 的对齐问题
- azure - 用 Node.JS 编写并具有 AD 安全性的 Azure Web App,访问此页面的用户是谁?
- css - 具有变化数据的弹性盒订单
- javascript - 图片预览提交后如何去掉?
- php - 在每个用户的给定日期范围内插入缺失的日期
- java - 当在我给定的代码中输入整数以外的输入时,它会进入无限循环