Wie implementieren Sie eine Pfeilform in Javafx?Java

Java-Forum
Anonymous
 Wie implementieren Sie eine Pfeilform in Javafx?

Post by Anonymous »

Ich schreibe eine JavaFX -Anwendung, die gezielte Diagramme zeichnen muss. Ich möchte dies durch Formen implementieren, weil ich möchte, dass die Eckpunkte gezogen werden können. Ich benutze einen Kreis, um einen Scheitelpunkt darzustellen, aber ich treffe ein Problem, wenn ich versuche, eine Form zu finden, um die gerichtete Kante darzustellen. Also erweitere ich die javafx.scene.shape.line -Klasse: < /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>

Da die Scheitelpunkte gezogen werden können, sollte sich natürlich die Kante gleichzeitig bewegen, was bedeutet, dass sich das Dreieck im Pfeil nach den Eigenschaften der Linie bewegen und sich drehen sollte. Aber ich habe keinen Weg gefunden, die Position des Polygons mit der Endxproperty und EndyProperty der Linie zu binden. Oder gibt es einen besseren Weg, um einen beweglichen Pfeil (gerichtete Kante) durch Formen zu implementieren?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post