Author Topic: Crappy Python Vector class.  (Read 1115 times)

Code: [Select]
from math import sqrt
class Vector(object):
    """
        Python Vector class
        Example Usage:
        ==> import vector
        ==> vec = vector.Vector([100, 200, 300])
        ==> print vec.scale(2)
        [200, 400, 600]

    """
    def __init__(self, vector):
        self.vector = vector
    def vector(self, vector=None):
        if type(vector) is NoneType:
            return self.vector
        else:
            self.vector = vector
    def scale(self, x):
        return [self.vector[0] * x, self.vector[1] * x, self.vector[2] * x]
    def div(self, vector):
        return [self.vector[0] / vector[0], self.vector[1] / vector[1], self.vector[2] / vector[2]]
    def add(self, vector):
        return [self.vector[0] + vector[0], self.vector[1] + vector[1], self.vector[2] + vector[2]]
    def sub(self, vector):
        return [self.vector[0] - vector[0], self.vector[1] - vector[1], self.vector[2] - vector[2]]
    def dot(self, vector):
        return self.vector[0](vector[0]) + self.vector[1](vector[1]) + self.vector[2](vector[2])
    def len(self):
        return sqrt((self.vector[0] * self.vector[0]) + (self.vector[1] * self.vector[1]) + (self.vector[2] * self.vector[2]))
    def dist(self, vector):
        dist = [self.vector[0] - vector[0], self.vector[1] - vector[1], self.vector[2] - vector[2]]
        return sqrt((dist[0] * dist[0]) + (dist[1] * dist[1]) + (dist[2] * dist[2]))
    def normalize(self):
        len = self.len()
        return [self.vector[0] / len, self.vector[1] / len, self.vector[2] / len]

The Vector.dist(vector) method probably produces invalid results. Just quickly made it because I was bored :/

Ohay this doesn't look confusing at all. I've been hearing other people complaining about Python but this is fine.