from math import sqrt """ Clase que simula un punto en el plano cartesiano. """ class Punto: """ Método constructor para iniciar un objeto Punto. @param x Coordenada X del punto. @param y Coordenada Y del punto. """ def __init__(self, x=0, y=0): self.x = x self.y = y def __str__(self): return '(' + str(self.x) + ',' + str(self.y) + ')' def get_X(self): return self.x def get_Y(self): return self.y def set_X(self, x): self.x = x def set_Y(self, y): self.y = y """ Sobrecarga el método __eq__ para poder utilizar el operador '==' con objetos de tipo punto. """ def __eq__(self, q): return self.x == q.x and self.y == q.y """ Función encargada de calcular la distancia entre 2 puntos. d = raiz_cuadrada((x1 - x2)^2 + (y1 - y2)^2) @param q El otro punto para calcular la distancia. """ def distancia(self, q): return sqrt((self.x - q.x)**2 + (self.y - q.y)**2) """ x1, y1 - self x2, y2 - q x3, y3 - r """ def estanAlineados(self, q, r): # return ((q.x - self.x) / (r.x - q.x)) == ((q.y - self.y) / (r.y - q.y)) return ((q.x - self.x) * (r.y - q.y)) == ((q.y - self.y) / (r.x - q.x)) if __name__ == '__main__': p = Punto(1,1) q = Punto(2,2) r = Punto(3,3) # p2 = Punto() # p3 = Punto(1,3) # p1.set_X(10) # print(p1) # p3.set_Y(-5) # print(p3) print('Distancia entre', p, 'y', q, '=', p.distancia(q)) print('Son iguales', p, 'y', q, '??', p == q) print('Estan alineados???', p.estanAlineados(q, r))