Свойство привязки Java-бинов к полярному координатному уравнению - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь связать startXProperty JavaFX QuadCurve с вращением узла, используя радиус r узла и его вращение θ. Идея состоит в том, что если я сделаю это со свойством Y, у меня будет кривая «прикрепить» себя к концу вращающегося объекта.

Теперь я знаю, что значение x можно найти с помощью x = r × cos( θ ).

Но я изо всех сил пытаюсь представить это в математике Bindings:

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

Я пытаюсь придумать комбинацию .multiply(), .divide(), .add() и .subtract(), которые есть у меня в наличии. У привязок нет метода .cos (), который я могу легко использовать.

Буду рад, если кто-нибудь поможет мне решить эту проблему.

1 Ответ

0 голосов
/ 03 июля 2018

add, multiply, т. Д. методы только для удобства.

К счастью, класс Bindings позволяет указать произвольные привязки, которые можно использовать в качестве параметра для привязки:

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

curve.startXProperty().bind(binding);

Однако, возможно, лучше использовать прослушиватель для свойства rotate, применив localToParent в качестве преобразования и задав свойства curve для предоставленных результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...