summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/raymath.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/raymath.h b/src/raymath.h
index 34db2d88..d3130750 100644
--- a/src/raymath.h
+++ b/src/raymath.h
@@ -307,9 +307,15 @@ RMAPI float Vector2DistanceSqr(Vector2 v1, Vector2 v2)
}
// Calculate angle from two vectors
+// Parameters need to be normalized
RMAPI float Vector2Angle(Vector2 v1, Vector2 v2)
{
- float result = -acos(v1.x*v2.x + v1.y*v2.y);
+ float dotProduct = v1.x*v2.x + v1.y*v2.y; // Dot product
+
+ float t = dotProduct < -1 ? -1 : dotProduct; // Clamp
+ if (t > 1) t = 1;
+
+ float result = acosf(t);
return result;
}