diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 5d7f9ec1..e1957136 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,26 +1,12 @@ - - - - - - - - - - - - - - - - + + diff --git a/.idea/misc.xml b/.idea/misc.xml index 5629a5af..096e7479 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -25,7 +25,7 @@ - + diff --git a/.idea/modules.xml b/.idea/modules.xml index efca357c..4347747d 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,6 +2,7 @@ + diff --git a/src/main/java/seng302/Controllers/RaceController.java b/src/main/java/seng302/Controllers/RaceController.java index 9c974b68..eeea8f78 100644 --- a/src/main/java/seng302/Controllers/RaceController.java +++ b/src/main/java/seng302/Controllers/RaceController.java @@ -1,5 +1,6 @@ package seng302.Controllers; + import javafx.beans.property.ReadOnlyObjectWrapper; import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; @@ -14,6 +15,7 @@ import javafx.scene.paint.Color; import javafx.scene.paint.Paint; import javafx.util.Callback; import seng302.GPSCoordinate; +import javafx.scene.transform.Rotate; import seng302.GraphCoordinate; import seng302.Model.*; import seng302.RaceMap; @@ -63,6 +65,20 @@ public class RaceController extends Controller{ gc.fillOval(graphCoordinate.getX(), graphCoordinate.getY(), 10, 10); } + public void displayArrow(GraphCoordinate coordinate, int angle){ + rotate(angle, coordinate.getX(),coordinate.getY()); + gc.fillPolygon(new double[]{coordinate.getX()-12, coordinate.getX()-6, coordinate.getX(), coordinate.getX()-4, coordinate.getX()-4, coordinate.getX()-8, coordinate.getX()-8}, + new double[]{coordinate.getY()-5, coordinate.getY()-20, coordinate.getY()-5, coordinate.getY()-5, coordinate.getY()+20, coordinate.getY()+20, coordinate.getY()-5}, + 7); + gc.restore(); + } + + + private void rotate(double angle, double px, double py) { + Rotate r = new Rotate(angle, px, py); + gc.setTransform(r.getMxx(), r.getMyx(), r.getMxy(), r.getMyy(), r.getTx(), r.getTy()); + } + public void updateInfoTable(Race race) { boatInfoTable.setItems(FXCollections.observableArrayList(race.getFinishingBoats())); @@ -90,6 +106,8 @@ public class RaceController extends Controller{ (new Thread(race)).start(); + this.gc = raceMap.getGraphicsContext2D(); + this.map = new RaceMap(32.321989, -64.8553, 32.246, -64.831, (int)raceMap.getWidth(), (int)raceMap.getHeight()); this.gc = raceMap.getGraphicsContext2D(); @@ -116,6 +134,13 @@ public class RaceController extends Controller{ GraphCoordinate startline2 = this.map.convertGPS(32.293771, -64.855242); displayLine(startline1, startline2, Color.GREEN); + //display wind direction arrow - specify origin point and angle displayPoint(this.map.convertGPS(32.293771, -64.855242), Color.BLACK); + displayArrow(new GraphCoordinate(500, 20), 100); + + + } + + } diff --git a/src/main/resources/scenes/racepane.fxml b/src/main/resources/scenes/racepane.fxml index 1c2146be..5155c996 100644 --- a/src/main/resources/scenes/racepane.fxml +++ b/src/main/resources/scenes/racepane.fxml @@ -11,7 +11,7 @@ - +