Länge und Normalisierung hinzugefügt
This commit is contained in:
17
vector.py
17
vector.py
@@ -1,4 +1,5 @@
|
||||
# -*- coding: iso-8859-15 -*
|
||||
from math import sqrt
|
||||
|
||||
class Vector(object):
|
||||
def __init__(self, coordinates):
|
||||
@@ -39,6 +40,18 @@ class Vector(object):
|
||||
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]
|
||||
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
|
||||
|
||||
@@ -55,4 +68,6 @@ print vektor_1.plus(vektor_2)
|
||||
|
||||
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()
|
||||
Reference in New Issue
Block a user