@ -1,9 +1,8 @@
package seng302.Model ;
import javafx.scene.Node ;
import javafx.scene.layout.Pane ;
import javafx.collections.ObservableList ;
import javafx.scene.Node ;
import javafx.scene.paint.Color ;
import javafx.scene.paint.Paint ;
import javafx.scene.transform.Rotate ;
@ -14,8 +13,6 @@ import seng302.RaceMap;
import java.time.Duration ;
import java.time.ZonedDateTime ;
import java.time.temporal.ChronoUnit ;
import java.util.* ;
/ * *
@ -134,24 +131,18 @@ public class ResizableRaceCanvas extends ResizableCanvas {
/ * *
* Displays an arrow on the Canvas
* Displays an arrow representing wind direction on the Canvas
*
* @param coordinate Coordinate that the arrow is to be displayed at .
* @param angle Angle that the arrow is to be facing in degrees 0 degrees = North ( Up ) .
* @see GraphCoordinate
* /
private void displayArrow ( GraphCoordinate coordinate , double angle ) {
gc . save ( ) ;
rotate ( angle , coordinate . getX ( ) , coordinate . getY ( ) ) ;
gc . setFill ( Color . BLACK ) ;
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 displayFancyArrow ( GraphCoordinate coordinate , double angle ) {
private void displayWindArrow ( double angle ) {
angle = angle % 360 ;
// show direction wind is coming from
if ( angle < 180 ) { angle = angle + 180 ; }
else { angle = angle - 180 ; }
if ( arrow ! = null & & arrow . getRotate ( ) ! = angle ) {
arrow . setRotate ( angle ) ;
}
@ -260,9 +251,9 @@ public class ResizableRaceCanvas extends ResizableCanvas {
//display wind direction arrow - specify origin point and angle - angle now set to random angle
if ( raceData instanceof StreamedCourse ) {
display FancyArrow( new GraphCoordinate ( ( int ) getWidth ( ) - 40 , 40 ) , ( ( StreamedCourse ) raceData ) . getWindDirection ( ) ) ;
display WindArrow( ( ( StreamedCourse ) raceData ) . getWindDirection ( ) ) ;
} else {
display FancyArrow( new GraphCoordinate ( ( int ) getWidth ( ) - 40 , 40 ) , 150 ) ;
display WindArrow( 150 ) ;
}
}