Merge remote-tracking branch 'origin/story9' into mergePacedLoop

# Conflicts:
#	.idea/compiler.xml
#	.idea/misc.xml
This commit is contained in:
Erika Savell
2017-03-15 13:50:52 +13:00
6 changed files with 121 additions and 8 deletions
@@ -2,7 +2,14 @@ package seng302.Controllers;
import javafx.fxml.FXML;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.control.TableView;
import javafx.scene.layout.AnchorPane;
import javafx.scene.paint.Color;
import javafx.scene.paint.Paint;
import javafx.scene.shape.Line;
import seng302.Coordinate;
import seng302.RaceMap;
import java.net.URL;
import java.util.ResourceBundle;
@@ -15,10 +22,60 @@ public class RaceController extends Controller{
Canvas raceMap;
@FXML
TableView boatInfoTable;
@FXML
AnchorPane canvasBase;
private GraphicsContext gc;
private RaceMap map;
public void displayBoat(Coordinate coordinate, Paint paint){
gc.setFill(paint);
gc.fillOval(coordinate.getX(), coordinate.getY(), 15, 15);
}
public void displayLine(Coordinate coordinateA, Coordinate coordinateB, Paint paint){
gc.setStroke(paint);
gc.setFill(paint);
gc.fillOval(coordinateA.getX() - 3, coordinateA.getY() - 3, 6, 6);
gc.fillOval(coordinateB.getX() - 3, coordinateB.getY() - 3, 6, 6);
gc.strokeLine(coordinateA.getX(), coordinateA.getY(), coordinateB.getX(), coordinateB.getY());
}
public void displayPoint(Coordinate coordinate, Paint paint){
gc.setFill(paint);
gc.fillOval(coordinate.getX(), coordinate.getY(), 10, 10);
}
@Override
public void initialize(URL location, ResourceBundle resources) {
public void initialize(URL location, ResourceBundle resources) {/*
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
Coordinate boat1coord = this.map.convertGPS(32.296577, -64.854304);
displayBoat(boat1coord, Color.AQUAMARINE);
//finish line
gc.setLineWidth(2);
Coordinate finishLineCoord1 = this.map.convertGPS(32.317379, -64.839291);
Coordinate finishLineCoord2 = this.map.convertGPS(32.317257, -64.836260);
displayLine(finishLineCoord1, finishLineCoord2, Color.DARKRED);
//marks
Coordinate markCoord = this.map.convertGPS(32.293039, -64.843983);
Coordinate southGate1 = this.map.convertGPS(32.284680, -64.850045);
Coordinate southGate2 = this.map.convertGPS(32.280164, -64.847591);
Coordinate northGate1 = this.map.convertGPS(32.309693, -64.835249);
Coordinate northGate2 = this.map.convertGPS(32.308046, -64.831785);
displayBoat(boat1coord, Color.AQUAMARINE);
displayBoat(markCoord, Color.GOLD);
displayLine(southGate1, southGate2, Color.DARKCYAN);
displayLine(northGate1, northGate2, Color.DARKVIOLET);
//start line
Coordinate startline1 = this.map.convertGPS(32.296577, -64.854304);
Coordinate startline2 = this.map.convertGPS(32.293771, -64.855242);
displayLine(startline1, startline2, Color.GREEN);
displayPoint(this.map.convertGPS(32.293771, -64.855242), Color.BLACK);
}
}
+19
View File
@@ -0,0 +1,19 @@
package seng302;
/**
* Created by cbt24 on 15/03/17.
*/
public class Coordinate {
private int x;
private int y;
public Coordinate(int x, int y) { this.x = x; this.y = y; }
public int getX() {
return x;
}
public int getY() {
return y;
}
}
+26
View File
@@ -0,0 +1,26 @@
package seng302;
import java.util.ArrayList;
/**
* Created by cbt24 on 15/03/17.
*/
public class RaceMap {
private double x1, x2, y1, y2;
private int width, height;
public RaceMap(double x1, double y1, double x2, double y2, int width, int height) {
this.x1 = x1; this.x2 = x2; this.y1 = y1; this.y2 = y2; this.width = width; this.height = height;
}
/**
* Converts GPS coordinates to coordinates for container
* @param lat GPS latitude
* @param lon GPS longitude
* @return Coordinate (pair of doubles)
* @see seng302.Coordinate
*/
public Coordinate convertGPS(double lat, double lon) {
return new Coordinate((int) (width * (lat - x1) / (x2 - x1)), (int) (height - (height * (lon - y1) / (y2 - y1))));
}
}