Le nuage de points | L'évolution de la distance maitre-chien |
Distance, en m, au bout de 0 secondes : 5.0 Distance, en m, au bout de 1 secondes : 4.12310562562 Distance, en m, au bout de 2 secondes : 3.50267290775 Distance, en m, au bout de 3 secondes : 3.12646788502 Distance, en m, au bout de 4 secondes : 2.93092403502 Distance, en m, au bout de 5 secondes : 2.84035501383 Distance, en m, au bout de 6 secondes : 2.80112629069 Distance, en m, au bout de 7 secondes : 2.78468228249 Distance, en m, au bout de 8 secondes : 2.77788861186 Distance, en m, au bout de 9 secondes : 2.77509908202 Distance, en m, au bout de 10 secondes : 2.77395659904 Distance, en m, au bout de 11 secondes : 2.77348917309 Distance, en m, au bout de 12 secondes : 2.77329801656 Distance, en m, au bout de 13 secondes : 2.77321985575 Distance, en m, au bout de 14 secondes : 2.77318789936 Distance, en m, au bout de 15 secondes : 2.77317483424 Distance, en m, au bout de 16 secondes : 2.77316949273 Distance, en m, au bout de 17 secondes : 2.77316730893 Distance, en m, au bout de 18 secondes : 2.77316641611 Distance, en m, au bout de 19 secondes : 2.7731660511 Distance, en m, au bout de 20 secondes : 2.77316590187 |
#-------------------------------------------------------------------------------
#Importation des bibliothèques nécessaires au fonctionnement du programme
#-------------------------------------------------------------------------------
#Bibliothèque mathématiques
#https://docs.python.org/fr/3.5/library/math.html
from math import*
#Autres bibliothèques
#Importation du module pylab qui permet de dessiner dans un repère
#http://www.courspython.com/introduction-courbes.html
from pylab import*
#-------------------------------------------------------------------------------
#Création des fonctions Python nécessaires au fonctionnement du programme
#-------------------------------------------------------------------------------
#Fonction qui calcule la distance entre deux points dont on donne les coordonnées en paramètres
def distance(absArbitre,ordArbitre,absBallon,ordBallon):
dist=sqrt((absArbitre-absBallon)**2+(ordArbitre-ordBallon)**2)
return dist
#création de la fonction qui permet de trouver l'abscisse de l'arbitre connaissant :...
# ses coordonnées précédentes et les coordonnées du ballon
def absArbitre(absArbitrePrec,ordArbitrePrec,absBal,ordBallonPrec,pas):
d=distance(absArbitrePrec,ordArbitrePrec,absBal,ordBallonPrec)
x=(absBal-absArbitrePrec)*pas/d+absArbitrePrec
return x
#création de la fonction qui permet de trouver l'ordonnée de l'arbitre connaissant :...
# ses coordonnées précédentes et les coordonnées du ballon
def ordArbitre(absArbitrePrec,ordArbitrePrec,absBal,ordBallonPrec,pas):
d=distance(absArbitrePrec,ordArbitrePrec,absBal,ordBallonPrec)
y=(ordBallonPrec-ordArbitrePrec)*pas/d+ordArbitrePrec
return y
#création des listes de coordonnées de l'arbitre
def coordArbitre(pas,dureeCourse,absBal):
tabAbsArbitre=[0]
tabOrdArbitre=[0]
for i in range (dureeCourse):
xArb=tabAbsArbitre[i]
yArb=tabOrdArbitre[i]
xBal=absBal
yBal=i*pas
d=distance(xBal,yBal,xArb,yArb)
#print("distance :",d)
xArb,yArb=absArbitre(xArb,yArb,xBal,yBal,pas),ordArbitre(xArb,yArb,xBal,yBal,pas)
#print("abscisse du point",i+1," est ",xArb)
#yArb=ordArbitre(xArb,yArb,xBal,yBal,pas)
#print("ordonnée du point",i+1," est ",yArb)
tabAbsArbitre.append(xArb)
tabOrdArbitre.append(yArb)
return tabAbsArbitre,tabOrdArbitre
#Pour obtenir la réponse à la question 1 :
# Fonction Python qui permet de dessiner la courbe du chien
def Nuage(listeCoordo):
n=int(len(liste[0]))
xlim(0, 5.2)
ylim(0, 20)
grid(True)
axis([0, 5.2, 0, 20])
for i in range(n):
plot(liste[0][i],liste[1][i],'r.')
show()
#Pour obtenir la réponse à la question 2 :
#Fonction Python qui permet de mesurer et afficher...
#...la distance entre le maitre et le chien
def evolutionDistance(listeCoordonnees):
liste=listeCoordonnees
for i in range(dureeCourse):
d=distance(liste[0][i],liste[1][i],absBal,i*pas)
print(d)
#----------------------------------
#Déclaration des variables globales
#----------------------------------
vitesse=1 #la vitesse de l'arbitre et du joueur
dureeCourse=20 #la durée de la course de l'arbitre et du
absBal=5 #Abscisse du ballon
intTemps=1
pas=vitesse*intTemps
#--------------------------------------------------------------------------
#Programme principal
#--------------------------------------------------------------------------
liste=coordArbitre(pas,dureeCourse,absBal)
#Réponse à la question 1
Nuage(liste)
#Réponse à la question 2
evolutionDistance(liste)