Länge und Normalisierung hinzugefügt

This commit is contained in:
2020-11-06 07:36:26 +01:00
parent e343081a2e
commit 7fc75fdde3

View File

@@ -1,4 +1,5 @@
# -*- coding: iso-8859-15 -* # -*- coding: iso-8859-15 -*
from math import sqrt
class Vector(object): class Vector(object):
def __init__(self, coordinates): def __init__(self, coordinates):
@@ -39,6 +40,18 @@ class Vector(object):
def times_scalar(self, c): def times_scalar(self, c):
new_coordinates = [c*x for x in self.coordinates] new_coordinates = [c*x for x in self.coordinates]
return Vector(new_coordinates) return Vector(new_coordinates)
def magnitude(self):
#Länge
coordinates_squared = [x**2 for x in self.coordinates]
return sqrt(sum(coordinates_squared))
def normalized(self):
try:
magnitude = self.magnitude()
return self.times_scalar(1./magnitude)
except ZeroDivisonError:
raise Exception('Ein Null-Vektor kann nicht normalisiert werden')
# Tests # Tests
@@ -55,4 +68,6 @@ print vektor_1.plus(vektor_2)
print vektor_2.minus(vektor_3) print vektor_2.minus(vektor_3)
print vektor_3.times_scalar(3) print vektor_3.times_scalar(3)
print "Magnitude -- Länge ", vektor_3.magnitude()