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())