import numpy as np
import matplotlib.pyplot as plt

mus = 0.8
mud = 0.2
m = 1
g = 1

epsilonm = mud/mus

alpha = [i for i in np.linspace(0,2*np.pi/5,500)]
alpha2 = [i for i in np.linspace(2*np.pi/5,0,500)]


alpha = alpha + alpha2

alphaindexex = [i for i in range(0, len(alpha))]


epsilon = []
glissement = False

for i in range(len(alpha)) : 
    if glissement :
        epsilon.append(epsilonm)
    else :
        epsilon.append(np.tan(alpha[i])/mus)
    if epsilon[-1] > 1 :
        epsilon[-1] = 1
        if mus != mud:
            N =i//2
        else : 
            N = 4*len(alpha)//17
        glissement = True
    if epsilon[-1] > np.tan(alpha[i])/mus :
        glissement = False
cm = plt.cm.get_cmap('rainbow')




x = np.tan(alpha)
y = epsilon
#N = 312//2
u = np.diff(x)[::N]
v = np.diff(y)[::N]
pos_x = x[:-1:N] + u/2
pos_y = y[:-1:N] + v/2
norm = np.sqrt(u**2+v**2) 


fig, ax = plt.subplots()
#ax.plot(x,y, marker="o")

plt.plot(x, y)
sc = plt.scatter(x, y, s = 10,c=alphaindexex, cmap=cm)

ax.quiver(pos_x, pos_y, u/norm, v/norm, angles="xy", zorder=50, pivot="mid")

plt.xlabel(r"tan $\alpha$")
plt.ylabel(r"$\epsilon$", rotation = 0)
plt.show()



# plt.show()

