#!/usr/env python #==================================================================== class Polygon: '''General Polygon class''' verticies = [] def __init__ (self, verts = None): ''' init for Poly!''' for x in verts: try: if len(x) >= 2: #print x[0], x[1] self.verticies.append((int(x[0]),int(x[1]))) except TypeError, ValueError: print "Incorrect" #______________________________________________________________________ def perimeter(self): p = 0.0 v = self.verticies for i in range(len(v)): offs = -len(v)+i+1 p += sum([(v[offs][y] - v[offs+1][y])**2 for y in range(2)])**0.5 return p #______________________________________________________________________ def area (self): area = 0.0 for i in range (1, len(self.verticies)-1): area += self.areaTriangle(0,i,i+1) return area #______________________________________________________________________ def areaTriangle (self, a,b,c): l = [] v = [a,b,c] try: l = [list(self.verticies[int(x)]) for x in v] except ValueError: return det = 0.0 for i in range(3): det += (l[-3+i][0]*(l[-1+i][1]-l[-2+i][1]))*((-1)**i) return abs(det/2) #==================================================================== ##-Ignore this---------------------------------------------- class Rectangle (Polygon): def __init__ (self, dim = (0,0,0,0)): try: for i in ((0,1),(2,0), (2,3), (0,3)): print i self.verticies.append((int(dim[i[0]]),int(dim[i[1]]))) except ValueError: self.verticies = [] #def area(): # pass ##------------------------------------------------------------ ##====main=================================================== if __name__ == "__main__": f = Polygon([(0,0), (3,0), (3,3), (0,3)]) print f.verticies g = Polygon([(0,0), (3,0), (3,3), (0,3)]) print g.verticies g.verticies[0] = (9,9) print print f.verticies print g.verticies print "areatri = "+ str(f.areaTriangle(0,1,2)) print f.area() print f.perimeter() #r = Rectangle((0,0,4,4)) #r2 = Rectangle((0,0,5,5)) #print r2.verticies