Java bean将属性绑定到极坐标方程

时间:2018-07-03 16:31:43

标签: java javafx data-binding binding

我试图通过使用节点的半径r及其旋转角度将JavaFX QuadCurve的startXProperty绑定到节点的旋转。我的想法是,如果我也使用Y属性,也可以将曲线的自身“附加”到旋转对象的末端。

现在,我知道可以使用x = r × cos( θ )找到x值。

但是我很难在Bindings数学中表示这一点:

curve.startXProperty().bind(getRod().rotateProperty().//Something);

我正在尝试将.multiply().divide().add().subtract()组合在一起。并不是绑定具有我可以轻松使用的.cos()方法。

如果有人可以帮助我解决这个难题,我会很乐意的。

1 个答案:

答案 0 :(得分:3)

addmultiply等方法只是为了方便。

幸运的是,Bindings类使您可以tp指定可用作绑定参数的任意绑定:

DoubleBinding binding = Bindings.createDoubleBinding(
                                    () -> Math.cos(Math.toRadians(getRod().getRotate())) * radiusProperty.get(),
                                    getRod().rotateProperty(),
                                    radiusProperty);

curve.startXProperty().bind(binding);

但是,最好使用侦听器来监听rotate属性,将localToParent用作转换并为提供的结果设置curve的属性。