#JB Etienne 20-21 janvier 2025
# Image d'un polygone par une homothétie
# centre de gravité d'un polygone défini par la liste L de ses sommets.
def centregravite(L):
x = 0
y = 0
for i in range(len(L)):
x = x + L[i].x
y = y + L[i].y
return Point(x/len(L),y/len(L),is_visible=True)
# image du point M par l'homothétie de centre O et de rapport k:
def image(M,O,k):
return Point(k*(M.x-O.x)+O.x,k*(M.y-O.y)+O.y,is_visible=False)
# image du polygone défini par la liste L de ses sommets par l'homothétie de centre O et de rapport k:
def image_poly(L,O,k):
S=[]
for i in range(len(L)):
S.append(image(L[i],O,k))
return Polygon(S)
# Exécution :
L = [Point(0,0),Point(1,0),Point(2,1),Point(3,3),Point(3,5),Point(1,7),Point(-1,5),Point(-2,1)]
p = Polygon(L)
im=image_poly(L,centregravite(L),0.3)
im.color="red"