[ create a new paste ] login | about

Link: http://codepad.org/y9Gs62dL    [ raw code | fork | 1 comment ]

raoullevert - Python, pasted on Jul 28:
from math import sqrt

class point():
    #Definition d'un point 3D
    def __init__(self, x = 0, y = 0, z=0):   
        self.__doc__ = "Definition d'un point 3D :  point(x,y,z) " 
        self.x = x
        self.y = y
        self.z = z
        self.coord = [x,y,z]
        
    def __repr__(self):
        return "%s %s %s" % (self.x, self.y, self.z)
    
class vector():
    def __init__(self, point1 = point(), point2 = point()):
        self.__doc__ = "Definition d'un vecteur 3D : vecteur(point1, point2) "
        self.coord = [[point1, point2]]
        self.point1 = point1
        self.point2 = point2
        self.x = self.point1.x - self.point2.x
        self.y = self.point1.y - self.point2.y
        self.z = self.point1.z - self.point2.z
    
    def __repr__(self):
        return "%s,%s,%s" % (self.x,self.y,self.z)   
    def Norme(self):
        return sqrt(self.x*self.x + self.y*self.y + self.z*self.z)
            
class vertex():
    def __init__(self, point1 = point(), point2 = point(), point3 = point()):
        self.__doc__ = "Definition d'un vertice (triangle) 3D : vertex(point1,point2,point3)"
        self.coord = {point1, point2, point3}
        self.point1, self.point2, self.point3 = point1, point2, point3
        self.coord_mat = [point1,point2,point3]
        self.vecteur1 = vector(point1, point2)
        self.vecteur2 = vector(point2, point3)
        self.vecteur3 = vector(point3, point1)
        self.vecteurs = [self.vecteur1, self.vecteur2, self.vecteur3]
    
    def __repr__(self):
        return "%s;%s;%s" % (self.vecteur1.__repr__(),self.vecteur2.__repr__(),self.vecteur3.__repr__())
    
    def Normale(self):
        u1 = vector(self.point1, self.point2)
        u2 = vector(self.point1, self.point3)
        X = u1.y*u2.z-u1.z*u2.y
        Y = u1.z*u2.x-u1.x*u2.z
        Z = u1.x*u2.y-u1.y*u2.x
        a = point(0,0,0)
        b = point(X,Y,Z)
        norme = vector(a,b).Norme()
        if (norme==0):
            return None
        return (X/norme,Y/norme,Z/norme)


Create a new paste based on this one


Comments:
posted by raoullevert on Jul 28
def3D.py
--> really simply 3D primitives
reply