Explorar o código

Adding angle to for vector2

Christian Wolfgang %!s(int64=5) %!d(string=hai) anos
pai
achega
2e6ad0a78f
Modificáronse 1 ficheiros con 8 adicións e 0 borrados
  1. 8 0
      math32/vector2.go

+ 8 - 0
math32/vector2.go

@@ -420,3 +420,11 @@ func (v *Vector2) AlmostEquals(other *Vector2, tolerance float32) bool {
 	}
 	return false
 }
+
+// AngleTo returns the angle between this vector and other
+func (v *Vector2) AngleTo(other *Vector2) float32 {
+
+	theta := v.Dot(other) / (v.Length() * other.Length())
+	// clamp, to handle numerical problems
+	return Acos(Clamp(theta, -1, 1))
+}