SPIGOT-5240: Vector.angle not valid for angles very close to each other

By: md_5 <git@md-5.net>
This commit is contained in:
Bukkit/Spigot
2019-08-03 09:53:50 +10:00
parent 5397c5b7be
commit e5c9e369ed
2 changed files with 10 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
package org.bukkit.util;
import com.google.common.base.Preconditions;
import com.google.common.primitives.Doubles;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Random;
@@ -202,7 +203,7 @@ public class Vector implements Cloneable, ConfigurationSerializable {
* @return angle in radians
*/
public float angle(@NotNull Vector other) {
double dot = dot(other) / (length() * other.length());
double dot = Doubles.constrainToRange(dot(other) / (length() * other.length()), -1.0, 1.0);
return (float) Math.acos(dot);
}