Как внедрить форму стрелки в Javafx?JAVA

Программисты JAVA общаются здесь
Anonymous
Как внедрить форму стрелки в Javafx?

Сообщение Anonymous »

Я пишу приложение Javafx, которое необходимо рисовать направленные графики. Я хочу реализовать это по формам, потому что я хочу, чтобы вершины могли перетаскиваться. Я использую круг, чтобы представлять вершину, но я сталкиваюсь с проблемой, когда пытаюсь найти форму для представления направленного край. Поэтому я расширяю javafx.scene.shape.line Class: < /p>

class Arrow extends Line {
Polygon triangle;

Arrow(double startX, double startY, double endX, double endY) {
super(startX, startY, endX, endY);
double dx = endX - startX;
double dy = endY - startY;
double angle = Math.atan2(dy, dx);
triangle = new Polygon(endX, endY, endX - 8, endY + 4, endX - 8, endY - 4);
triangle.setRotate(Math.toDegrees(angle));
triangle.rotateProperty().bind()
triangle.rotateProperty().bind(Bindings.createDoubleBinding(() -> {
double x = this.getEndX() - this.getStartX();
double y = this.getEndY() - this.getStartY();
double a = Math.atan2(y, x);
return Math.toDegrees(a);
}));
}
}
< /code>

Поскольку вершины могут быть перетаскиваны, конечно, край должен двигаться одновременно, что означает, что треугольник внутри стрелки должен двигаться и вращаться в соответствии с свойствами линии. Но я не нашел способ связать свойство позиции многоугольника с помощью EndxProperty и EndyProperty линии.

Итак, я хочу спросить, как это достичь? Или есть лучший способ реализовать подвижную стрелку (направленное край) по формам?

Подробнее здесь: https://stackoverflow.com/questions/462 ... -in-javafx

Вернуться в «JAVA»