I QuadCurve2D bin mit Kurven zwischen meinen Knoten zeichnenIn Richtung auf der Mitte einer Kurve
QuadCurve2D curve = new QuadCurve2D.Double(start.getX(), start.getY(), c1, c2, end.getX(), end.getY());
ich den folgenden Code verwendet, um eine Richtung der Kurve hinzuzufügen, wo g2d
ist Graphics2D
Objekt
g2d.draw(curve);
Polygon arrowHead = new Polygon();
arrowHead.addPoint(0, 5);
arrowHead.addPoint(-5, -5);
arrowHead.addPoint(5, -5);
AffineTransform at = new AffineTransform();
at.setToIdentity();
double angle = Math.atan2(curve.getY2() - curve.getY1(), curve.getX2() - curve.getX1());
at.translate(curve.getX2(), curve.getY2());
at.rotate((angle - Math.PI/2d));
g2d.setTransform(at);
g2d.fill(arrowHead);
Ich möchte die Richtung in der Mitte der Kurve nicht am Ende zeigen, habe ich versucht, die .translate()
Parameter ändern, aber es erscheint an seltsamen Orten. Irgendwelche Vorschläge?