From 403d24706fd3afea57679614a439cd47c7b671eb Mon Sep 17 00:00:00 2001 From: Sven Riwoldt Date: Sat, 7 Nov 2020 09:45:18 +0100 Subject: [PATCH] Normalisieren - print und pdb erstmal auskommentiert --- vector.py | 111 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 57 insertions(+), 54 deletions(-) diff --git a/vector.py b/vector.py index 1d4a943..8c74354 100644 --- a/vector.py +++ b/vector.py @@ -3,58 +3,58 @@ from math import sqrt import pdb class Vector(object): - def __init__(self, coordinates): - try: - if not coordinates: - raise ValueError - self.coordinates = tuple(coordinates) - self.dimension = len(coordinates) - - except ValueError: - raise ValueError('Die Koordinaten dürfen nicht leer sein') - - except TypeError: - raise TypeError('Die Koordinaten müssen iterierbar sein') - - - def __str__(self): - return 'Vector: {}'.format(self.coordinates) - - - def __eq__(self, v): - return self.coordinates == v.coordinates - - #def plus(self,v): - # new_coordinates = [x+y for x,y in zip(self.coordinates, v.coordinates)] - # return Vector(new_coordinates) - - def plus(self,v): - new_coordinates =[] - n = len(self.coordinates) - for i in range(n): - new_coordinates.append(self.coordinates[i] + v.coordinates[i]) - - def minus(self,v): - new_coordinates = [x-y for x,y in zip(self.coordinates, v.coordinates)] - return Vector(new_coordinates) - - def times_scalar(self, c): - new_coordinates = [c*x for x in self.coordinates] - return Vector(new_coordinates) - - def magnitude(self): - #Länge - coordinates_squared = [x**2 for x in self.coordinates] - pdb.set_trace() - 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') - + def __init__(self, coordinates): + try: + if not coordinates: + raise ValueError + self.coordinates = tuple(coordinates) + self.dimension = len(coordinates) + + except ValueError: + raise ValueError('Die Koordinaten dürfen nicht leer sein') + + except TypeError: + raise TypeError('Die Koordinaten müssen iterierbar sein') + + + def __str__(self): + return 'Vector: {}'.format(self.coordinates) + + + def __eq__(self, v): + return self.coordinates == v.coordinates + + #def plus(self,v): + # new_coordinates = [x+y for x,y in zip(self.coordinates, v.coordinates)] + # return Vector(new_coordinates) + + def plus(self,v): + new_coordinates =[] + n = len(self.coordinates) + for i in range(n): + new_coordinates.append(self.coordinates[i] + v.coordinates[i]) + + def minus(self,v): + new_coordinates = [x-y for x,y in zip(self.coordinates, v.coordinates)] + return Vector(new_coordinates) + + def times_scalar(self, c): + new_coordinates = [c*x for x in self.coordinates] + return Vector(new_coordinates) + + def magnitude(self): + #Länge + coordinates_squared = [x**2 for x in self.coordinates] + #pdb.set_trace() + 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 vektor_1 = Vector([1,2,3]) @@ -64,7 +64,7 @@ vektor_2 = Vector([1,2,3]) vektor_3 = Vector([-1,2,3]) print (vektor_1 == vektor_2) -print (vektor_2 == vektor_3) +print (vektor_2 == vektor_3) print (vektor_1.plus(vektor_2)) @@ -72,4 +72,7 @@ print (vektor_2.minus(vektor_3)) print (vektor_3.times_scalar(3)) -print ("Magnitude -- Länge ", vektor_3.magnitude()) \ No newline at end of file +print ("Magnitude -- Länge ", vektor_3.magnitude()) + +print ("Normalisieren ", vektor_2.normalized()) +