【问题标题】:Java beans binding property to polar coordinate equationJava bean 将属性绑定到极坐标方程
【发布时间】:2018-12-12 01:06:17
【问题描述】:

我正在尝试通过使用节点的半径 r 及其旋转 θ 将 JavaFX QuadCurve 的 startXProperty 绑定到节点的旋转。这个想法是,如果我也使用 Y 属性执行此操作,我可以让曲线将其自身“附加”到旋转对象的末端。

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

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

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

我正在尝试考虑 .multiply().divide().add().subtract() 的组合。它不像绑定有一个我可以轻松使用的 .cos() 方法。

如果有人能帮我解决这个令人头疼的问题,我会很高兴的。

【问题讨论】:

    标签: java javafx data-binding binding


    【解决方案1】:

    addmultiply 等。方法只是为了方便。

    幸运的是,Bindings 类允许您指定可用作绑定参数的任意绑定:

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

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

    【讨论】:

    • 感谢 fabian 的回答正是我所需要的,我从未使用过 localToParent 但我会试一试 :)
    猜你喜欢
    • 2012-01-30
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 2011-03-17
    • 2018-10-24
    • 1970-01-01
    相关资源
    最近更新 更多