From 2b2a1b878eac9ccc6dd7a0d66a0519b9a2d70f6f Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 19 Jun 2021 18:06:39 -0400 Subject: [PATCH] implemented direction calculation candidate --- src/xyz/soper/arty/util/ArtyMath.java | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/xyz/soper/arty/util/ArtyMath.java b/src/xyz/soper/arty/util/ArtyMath.java index 8c83435..7dd8d13 100644 --- a/src/xyz/soper/arty/util/ArtyMath.java +++ b/src/xyz/soper/arty/util/ArtyMath.java @@ -21,26 +21,20 @@ public class ArtyMath { /** * Calculates angle from east of the vector. + * Uses Minecraft coordinate styling for angle measures + * e.g. pi/2 is south (+z) and 3pi/2 is north (-z) * @param vector Vector to calculate angle from * @return Angle from east in radians */ public static double calculateDirection(Vector vector){ - vector.setY(0); - Vector eastVector = new Vector(1,0,0); - return eastVector.angle(vector); - } - - public static double calculateDirectionDOTPRODUCT(Vector vector){ double x = vector.getX(); double z = vector.getZ(); double directionMagnitude = Math.sqrt((x*x)+(z*z)); //dot product is always going to just be the x value //since the z value for the east vector is 0. - return Math.acos(x/directionMagnitude); - } - - public static double calculateDirectionBASICTRIG(Vector vector){ - return Math.atan(vector.getZ()/vector.getX()); + double angle = Math.acos(x/directionMagnitude); + if(z < 0) angle = 2*Math.PI - angle; + return angle; } /**