# -*- coding: utf-8 -*- """ Created on Wed Dec 5 09:48:41 2018 @author: Angelo """ class punto2d(): def __init__(self, x=0, y=0): self.x=x self.y=y def distanza0(self): return (self.x**2 + self.y**2)**0.5 def distanza(self, p): return((self.x-p.x)**2 + (self.y-p.y)**2)**0.5 def __str__(self): return "({},{})".format(self.x,self.y) def __repr__(self): return "Oggetto punto2d con coordinate {},{}".format(self.x, self.y) class triangolo(): def __init__(self, p1, p2, p3): if not isinstance(p1, punto2d) or\ not isinstance(p2, punto2d) or\ not isinstance(p3, punto2d): raise TypeError self.vertici=[p1, p2, p3] def __str__(self): return ",".join([v.__str__() for v in self.vertici]) def perimetro(self): """restituisce la lunghezza del perimetro del triangolo""" vertici = self.vertici per = vertici[0].distanza(vertici[1]) per+= vertici[1].distanza(vertici[2]) per+= vertici[0].distanza(vertici[2]) return per class poligono(): def __init__(self, lista_vertici): for vertice in lista_vertici: if not isinstance(vertice, punto2d): raise TypeError("{} non รจ di tipo puntod2".format(vertice)) self.vertici = lista_vertici def perimetro(self): per = 0 for p1,p2 in zip(self.vertici, self.vertici[1:]+self.vertici[0:1]): per += p1.distanza(p2) return per p1=punto2d(10,5) p2=punto2d(10,0) p3=punto2d(5,5) tria = triangolo(p1,p2,p3)