From 391bd33548b2f6860060f47f901ebfada84b366f Mon Sep 17 00:00:00 2001 From: Calum Date: Thu, 14 Sep 2017 12:38:36 +1200 Subject: [PATCH] Fixed position issues on first 2 mark arrows. #implement #story[1266] --- .../fxObjects/MarkArrowFactory.java | 29 +++++++++---------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/src/main/java/seng302/visualiser/fxObjects/MarkArrowFactory.java b/src/main/java/seng302/visualiser/fxObjects/MarkArrowFactory.java index 080ff58a..a9d1ca38 100644 --- a/src/main/java/seng302/visualiser/fxObjects/MarkArrowFactory.java +++ b/src/main/java/seng302/visualiser/fxObjects/MarkArrowFactory.java @@ -6,7 +6,6 @@ import javafx.scene.paint.Color; import javafx.scene.paint.Paint; import javafx.scene.shape.Arc; import javafx.scene.shape.ArcType; -import javafx.scene.shape.Circle; import javafx.scene.shape.Polygon; import javafx.scene.shape.Polyline; import javafx.scene.shape.StrokeLineCap; @@ -39,33 +38,31 @@ public class MarkArrowFactory { public static Model constructEntryArrow3D ( RoundingSide roundingSide, double angle, ModelType type) { Model entryArrow = ModelFactory.importModel(type); + angle = Math.toRadians(angle); int multiplier = roundingSide == RoundingSide.STARBOARD ? 1 : -1; - double relativeX = multiplier * 5 * Math.sin(angle + Math.PI / 2); - double relativeY = multiplier * 5 * Math.cos(angle + Math.PI / 2); - double xStart = relativeX + multiplier * 20 * Math.sin(angle + Math.PI / 2); - double yStart = relativeY + multiplier * 20 * Math.cos(angle + Math.PI / 2); + double relativeX = multiplier * 10 * Math.sin(angle + Math.PI / 8); + double relativeY = multiplier * 10 * Math.cos(angle + Math.PI / 8); + double xStart = relativeX + multiplier * 10 * Math.sin(angle - Math.PI / 2); + double yStart = relativeY + multiplier * 10 * Math.cos(angle - Math.PI / 2); entryArrow.getAssets().getTransforms().addAll( new Translate(xStart, yStart, 0), new Rotate(Math.toDegrees(angle), new Point3D(0,0,1)) ); - return entryArrow; + return entryArrow; } public static Model constructExitArrow3D ( RoundingSide roundingSide, double angle, ModelType type) { Model exitArrow = ModelFactory.importModel(type); -// angle = Math.toRadians(angle-65); angle = Math.toRadians(angle); int multiplier = roundingSide == RoundingSide.STARBOARD ? 1 : -1; - double xStart = multiplier * 6 * Math.sin(angle + Math.PI / 2); - double yStart = multiplier * 6 * Math.cos(angle + Math.PI / 2); -// exitArrow.getAssets().getTransforms().addAll( -// new Translate(xStart, yStart, 0), -// new Rotate(Math.toDegrees(Math.toDegrees(angle)), new Point3D(0,0,1)) -// ); - Circle c = new Circle(xStart, yStart, 1, Color.RED); - c.setStroke(Color.TRANSPARENT); - return new Model(new Group(c), null); + double xStart = multiplier * 6 * Math.sin(angle + Math.PI / 8); + double yStart = multiplier * 6 * Math.cos(angle + Math.PI / 8); + exitArrow.getAssets().getTransforms().addAll( + new Translate(xStart, yStart, 0), + new Rotate(Math.toDegrees(angle), new Point3D(0,0,1)) + ); + return exitArrow; }