Correction TP III

class Point(object): def __init__(self, x, y): self.abs = x self.ord = y def __str__(self): return '(' + str(self.abs) + ' ' + str(self.ord) + ')' def milieu(self, other): x = int((self.abs + other.abs) / 2) y = int((self.ord + other.ord) / 2) return Point(x, y) def distance(self, other): return ((self.abs - other.abs)**2 + (self.ord - other.ord)**2)**.5 class TroisPoints(object): def __init__(self, premier, deuxieme, troisieme): self.premier = premier self.deuxieme = deuxieme self.troisieme = troisieme def __str__(self): return f'<{self.premier}, {self.deuxieme}, {self.troisieme}>' # return self.premier.__str__() + ', ' + self.deuxieme.__str__() + ', ' + self.troisieme.__str__() def sont_alignes(self): return (self.deuxieme.abs - self.premier.abs) * (self.troisieme.ord - self.premier.ord) == \ (self.troisieme.abs - self.premier.abs) * (self.deuxieme.ord - self.premier.ord) def est_isocele(self): AB = self.premier.distance(self.deuxieme) BC = self.deuxieme.distance(self.troisieme) AC = self.premier.distance(self.troisieme) return AB == AC or AB == BC or AC == BC class Cercle(): def __init__(self, x, y, r): self.centre = Point(x, y) self.rayon = r def intersection(self, other): return True if (self.centre).distance(other.centre) <= self.rayon + other.rayon else False a = Point(4, 22) b = Point(42, 27) c = Point(1, 2) print(a) print(a.distance(b)) d = TroisPoints(a, b, c) e = TroisPoints(Point(0, 1), Point(0, 12), Point(0, 24)) print(d) print(d.sont_alignes()) print(e.sont_alignes()) print(d.est_isocele())