Browse Source

Pfeilspitzen hinzugefügt

Kolja Strohm 7 years ago
parent
commit
0c0f0a2553
2 changed files with 27 additions and 0 deletions
  1. 2 0
      src/View/EdgeView.java
  2. 25 0
      src/View/RenderHelper.java

+ 2 - 0
src/View/EdgeView.java

@@ -3,6 +3,7 @@ package View;
 import java.awt.Color;
 import java.awt.Component;
 import java.awt.Graphics;
+import java.awt.Graphics2D;
 import java.awt.Point;
 import java.util.ArrayList;
 
@@ -86,5 +87,6 @@ public class EdgeView extends JPanel {
             System.out.println( "Draw a Line from (" + (int)bps.get( i - 1 ).getX() + "," + (int)bps.get( i - 1 ).getY() + ") to (" + (int)bps.get( i ).getX() + "," + (int)bps.get( i ).getY() + ")" );
             g.drawLine( (int)bps.get( i - 1 ).getX() - getX(), (int)bps.get( i - 1 ).getY() - getY(), (int)bps.get( i ).getX() - getX(), (int)bps.get( i ).getY() - getY() );
         }
+        ((Graphics2D)g).fill( RenderHelper.createArrowShape( new Point( bps.get( bps.size() - 2 ).x - getX(), bps.get( bps.size() - 2 ).y - getY() ), new Point( bps.get( bps.size() - 1 ).x - getX(), bps.get( bps.size() - 1 ).y - getY() ) ) );
     }
 }

+ 25 - 0
src/View/RenderHelper.java

@@ -0,0 +1,25 @@
+package View;
+
+import java.awt.Point;
+import java.awt.Polygon;
+import java.awt.Shape;
+import java.awt.geom.AffineTransform;
+
+public class RenderHelper {
+
+    public static Shape createArrowShape(Point fromPt, Point toPt) {
+        Polygon arrowPolygon = new Polygon();
+        arrowPolygon.addPoint(-3,6);
+        arrowPolygon.addPoint(3,0);
+        arrowPolygon.addPoint(-3,-6);
+        arrowPolygon.addPoint(-3,6);
+
+        double rotate = Math.atan2( ( toPt.y - fromPt.y ) , ( toPt.x - fromPt.x ) );
+
+        AffineTransform transform = new AffineTransform();
+        transform.translate(toPt.x, toPt.y);
+        transform.rotate(rotate);
+
+        return transform.createTransformedShape(arrowPolygon);
+    }
+}