Le code de la fonction milieu()
def milieu(point1,point2):
return ((point1[0]+point2[0])/2,(point1[1]+point2[1])/2)
Le code de la fonction vecteur() à compléter :
def vecteur(p1,p2):
''' retourne les coordonnées du vecteur d'origine p1 et d'extrémité p2
return : tuple de longueur 2 (x,y)
>>> vecteur((3,2),(1,-5)
(-2,-7)
>>> A=(3,2)
>>> B=(1,1)
>>> vect(A,B)
(-2,-1)
>>> vect(B,A)
(2,1)
'''
Le travail du mini projet sera évalué par groupe à la fin de la séance de TP ou au début de la prochaine séance de TP.
Il sera noté sur 10 points ( 2 points par fonction ).
Code utile pour représenter tous les points définis par des variables du type A=(2,3) pour des abscisses et ordonnées comprises entre -5 et 5.
On pourra regarder le résultat intéressant de la méthode globals().items() en Python ainsi que le rôle de la méthode ord() qui permet de déterminer si un caractère est en majuscule ou en minuscule.
import matplotlib.pyplot as plt
import numpy as np
def recup_variables_globales(): # récupère les variables globales dont le nom est une
# lettre majuscule et le contenu un tuple de longueur 2
liste_var=()
for varname, varval in globals().items():
if len(varname)==1 and ord(varname[0])>=65 and ord(varname[0])<=90 and type(varval)==tuple and len(varval)==2:
liste_var=liste_var+(varname,varval)
return liste_var
def points_a_dessiner(): # fonction qui récupère les variables points définie
# par une majuscule
points=recup_variables_globales()
nom=() # nom des points
x_pts=() # abscisse correspondante
y_pts=() # ordonnée correspondant
for i in range(0,len(points),2):
nom+=(points[i],)
x_pts+=(points[i+1][0],)
y_pts+=(points[i+1][1],)
return nom,x_pts,y_pts
def dessiner_pts(): # fonctions qui dessine l'ensemble des points
nom =points_a_dessiner()[0]
x = points_a_dessiner()[1]
y = points_a_dessiner()[2]
plt.scatter(x,y,marker = 'x' )
plt.title('Mes points')
axes = plt.gca()
axes.set_xlim(-6,6)
plt.xticks(np.arange(-6, 6, 1.0))
axes.set_ylim(-6,6)
plt.yticks(np.arange(-6, 6, 1.0))
axes.xaxis.grid(True, color = 'orange', linewidth = 1, linestyle = 'dashed')
axes.yaxis.grid(True, color = 'orange', linewidth = 1, linestyle = 'dashed')
axes.spines['left'].set_position('zero')
axes.spines['right'].set_color('none')
axes.spines['bottom'].set_position('zero')
axes.spines['top'].set_color('none')
for i in range(len(x)):
plt.text(x[i]-0.1,y[i]+0.3,nom[i])
plt.show()