diff --git a/src/raymath.h b/src/raymath.h index 43e81135e..79fd5480b 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -470,6 +470,21 @@ RMDEF float Vector3Distance(Vector3 v1, Vector3 v2) return result; } +// Calculate angle between two vectors in XY and XZ +RMDEF Vector2 Vector3Angle(Vector3 v1, Vector3 v2) +{ + Vector2 result = { 0 }; + + float dx = v2.x - v1.x; + float dy = v2.y - v1.y; + float dz = v2.z - v1.z; + + result.x = atan2f(dx, dz); // Angle in XZ + result.y = atan2f(dy, sqrtf(dx*dx + dz*dz)); // Angle in XY + + return result; +} + // Negate provided vector (invert direction) RMDEF Vector3 Vector3Negate(Vector3 v) {