From 43c84cb67775897a48d4cb19ad077dd7886ccafd Mon Sep 17 00:00:00 2001 From: Fan-Wu Yang Date: Thu, 16 Mar 2017 16:14:28 +1300 Subject: [PATCH 1/2] Added draw ability to draw arrow on the canvas - displayArrow() function created - rotate() function created. #story [14] #pair[fwy13, zwu18] --- .idea/compiler.xml | 18 ++---------------- .idea/misc.xml | 2 +- .idea/modules.xml | 1 + .../seng302/Controllers/RaceController.java | 15 +++++++++++++++ 4 files changed, 19 insertions(+), 17 deletions(-) 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 e0f1a867..7f888ccd 100644 --- a/src/main/java/seng302/Controllers/RaceController.java +++ b/src/main/java/seng302/Controllers/RaceController.java @@ -7,6 +7,7 @@ import javafx.scene.control.TableView; import javafx.scene.layout.AnchorPane; import javafx.scene.paint.Color; import javafx.scene.paint.Paint; +import javafx.scene.transform.Rotate; import seng302.GraphCoordinate; import seng302.RaceMap; @@ -46,6 +47,19 @@ public class RaceController extends Controller{ gc.fillOval(graphCoordinate.getX(), graphCoordinate.getY(), 10, 10); } + public void displayArrow(GraphCoordinate coordinate, Paint paint){ + rotate(10, 30,30); + gc.fillPolygon(new double[]{0, 6, 12, 8, 8, 4, 4}, + new double[]{15, 0, 15, 15, 40, 40, 15}, + 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()); + } + @Override public void initialize(URL location, ResourceBundle resources) {/* raceMap.widthProperty().bind(canvasBase.widthProperty()); @@ -76,5 +90,6 @@ public class RaceController extends Controller{ displayLine(startline1, startline2, Color.GREEN); displayPoint(this.map.convertGPS(32.293771, -64.855242), Color.BLACK); + displayArrow(new GraphCoordinate(100, 100), Color.BLUEVIOLET); } } From ddbb77a6107eb1b1b85ab7fed4044f23fca7da6b Mon Sep 17 00:00:00 2001 From: David Wu Date: Thu, 16 Mar 2017 17:44:24 +1300 Subject: [PATCH 2/2] Arrow is now movable around the canvas -Arrow method is changed to take coordinates and an angle -Arrow will now be drawn around the coordinate #story [14] --- .../seng302/Controllers/RaceController.java | 19 ++++++++++++++----- src/main/resources/scenes/racepane.fxml | 2 +- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/java/seng302/Controllers/RaceController.java b/src/main/java/seng302/Controllers/RaceController.java index 7f888ccd..8a7c0f59 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.fxml.FXML; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; @@ -47,14 +48,15 @@ public class RaceController extends Controller{ gc.fillOval(graphCoordinate.getX(), graphCoordinate.getY(), 10, 10); } - public void displayArrow(GraphCoordinate coordinate, Paint paint){ - rotate(10, 30,30); - gc.fillPolygon(new double[]{0, 6, 12, 8, 8, 4, 4}, - new double[]{15, 0, 15, 15, 40, 40, 15}, + 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()); @@ -65,6 +67,7 @@ public class RaceController extends Controller{ raceMap.widthProperty().bind(canvasBase.widthProperty()); raceMap.heightProperty().bind(canvasBase.heightProperty());*/ this.gc = raceMap.getGraphicsContext2D(); + this.map = new RaceMap(32.321989, -64.8553, 32.246, -64.831, (int)raceMap.getWidth(), (int)raceMap.getHeight()); //boat GraphCoordinate boat1coord = this.map.convertGPS(32.296577, -64.854304); @@ -89,7 +92,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(100, 100), Color.BLUEVIOLET); + displayArrow(new GraphCoordinate(500, 20), 100); + + + } + + } diff --git a/src/main/resources/scenes/racepane.fxml b/src/main/resources/scenes/racepane.fxml index 8eaf63a6..bffa0d7f 100644 --- a/src/main/resources/scenes/racepane.fxml +++ b/src/main/resources/scenes/racepane.fxml @@ -11,7 +11,7 @@ - +