import matplotlib.pyplot as plt
import numpy as np
from math import *

#constante
e= 1.602*10-19
q1= -10*e
k= 9*10**9

# coordonnée de la charge
x1=float(input("abscisse de la charge (entier entre 1 et 20), x="))
y1=float(input("ordonnée de la charge (entier entre 1 et 20), y="))

# grille de vecteurs
for x in range(1,20):
    x=x+0.5
    for y in range(1,20):
        y=y+0.5
# distance particule - point (x,y)
        r=((x-x1)**2+(y-y1)**2)**0.5
# coordonnéees vecteurs unitaires
        ux=(x-x1)/r
        uy=(y-y1)/r
# valeur radiale du champ
        E1= -k*q1/(r**2)
# coordonnées du champ E
        E1x= E1*ux
        E1y= E1*uy
# echelle
        echelle=10**-10
        E1x = E1x*echelle
        E1y = E1y*echelle
# Tracé des vecteurs champs
        if r > 2 :
            plt.quiver(x,y,E1x,E1y,color="red",scale=2,scale_units='xy')

#Configuration du graphique
axes=plt.gca()
plt.axis('equal')
axes.set_xlim(0, 21)
axes.set_ylim(0, 21)
plt.xlabel("x (en m)")
plt.ylabel("y (en m)")
plt.title('Champ électrostatique créé par une seule charge',fontsize=8)
plt.plot(x, y, "r+", markersize=2)
plt.plot(x1,y1, "go", markersize=10)
plt.grid()
plt.show()


