In [8]:
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = [10,8]
#placement de la particule source du champ
x_masse=0 #position au centre du graphique, ne pas modifier
y_masse=0 #position au centre du graphique, ne pas modifier
#Masse du corps ponctuel A
masse=2.0
#coordonnées de la position à laquelle on est soumis au champ
x=3
y=0
#affichage d'un message d'erreur si la demande de placement se situe au niveau de la particule;
if x==x_masse and y==y_masse :
print("Erreur car la charge se situe au niveau de la particule")
print("Fermez cette fenêtre et recommencez" )
sys.exit(0)
# distance entre l'origine et la charge
Dist = ((x-x_masse)**2+(y-y_masse)**2)**0.5
#Modélisation du champ selon deux vecteurs Gx et Gy
Gx=-masse*(x-x_masse)/Dist**3
Gy=-masse*(y-y_masse)/Dist**3
#Valeur du champ à afficher sur le graphique
G=6.67e-11*masse/(Dist)**2
#conversion en "string" pour pouvoir être affichée
G=str("%.2E"%G)
#graphique
xmin, ymin, xmax, ymax = -10,-7,10,7
#titre avec valeur du champ
plt.title("Champ de gravitation en ce point : G="+G+" $\\mathrm{N\\cdot kg^{-1}}$")
plt.xlabel("abscisse en m")
plt.ylabel("ordonnée en m")
#plt.axis('equal')
plt.xlim(xmin, xmax)
plt.ylim(ymin, ymax)
ax = plt.gca()
plt.grid()
# Représentation de la masse centrale
plt.scatter(x_masse,y_masse,marker="o",color='red')
plt.text(0,0.5,"$m_A$",color='red')
#valeur de la masse à afficher
mA=str(masse)
plt.text(-9,-6,"$m_A$ = "+mA+ " kg",color='red')
#valeur de la distance à afficher
d=str("%.2E"%Dist)
plt.text(-9,-6.5,"$d$ = "+d+ " m")
# Représentation du champ de gravitation
plt.scatter(x,y,marker="x")
plt.text(x+0.2,y+0.2,"$\\overrightarrow{G}$")
plt.arrow(x,y,3*Gx,3*Gy,ec="k",head_width=0.2,head_length=0.2) #coeff de proportionnalité pour la longueur changé
plt.show()
In [ ]: