Added more math functionsto the vectors and matrix classes.

This commit is contained in:
2020-07-15 11:50:20 -05:00
parent 813c1f531f
commit a4aa0c628f
3 changed files with 67 additions and 52 deletions
+24
View File
@@ -1,3 +1,5 @@
import math
class Vector2d:
def __init__(self, x, y):
self.points = [x, y]
@@ -23,6 +25,9 @@ class Vector2d:
def __setitem__(self, key, value):
self.points[key] = value
#def get_normalized_form(self):
# return Vector3d(self.x / 2, self.y / 2, self.z / 2)
class Vector3d(Vector2d):
def __init__(self, x, y, z):
@@ -42,6 +47,22 @@ class Vector3d(Vector2d):
# Returns a scalar that defines how similar two
# vectors are to one another.
return self.x * vector3d.x + self.y * vector3d.y + self.z * vector3d.z
def vector_3d_length(self):
return math.sqrt(self.dot_product(self))
def subtract_3d(self, vector3d):
return Vector3d(self.x - vector3d.x, self.y - vector3d.y, self.z - vector3d.z)
def add_3d(self, vector3d):
return Vector3d(self.x + vector3d.x, self.y + vector3d.y, self.z + vector3d.z)
def divide_3d(self, value):
return Vector3d(self.x / value, self.y / value, self.z / value)
def get_normalized_form(self):
length = self.vector_3d_length()
return Vector3d(self.x / length, self.y / length, self.z / length)
@property
def z(self):
@@ -62,3 +83,6 @@ class Vector4d(Vector3d):
@w.setter
def w(self, value):
self.points[3] = value
#def get_normalized_form(self):
# return Vector3d(self.x / 4, self.y / 4, self.z / 4)