All pastes #502412 Raw Edit

Unnamed

public python v1 · immutable
·published 2007-05-22 14:43 UTC
rendered paste body
#!/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##-Ignore this----------------------------------------------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