# -*- coding: utf-8 -*-
"""
Created on Sat Jun 03 14:09:54 2017

@author: Eyer
"""
## Appel des modules nécessaires
import numpy as np
import matplotlib.pyplot as plt
import scipy.optimize as opt 

## Résolution numérique de la loi Entrée-Sortie
# Définition des paramètres
xa = 105.
ya = 265.
l1 = 290.
l2 = 280.
xc = 340.
yc = -5.

# Définition de la loi ES écrite sous la forme f(t1,t3) = 0
def f(t1,t3):
    A = xa - xc*np.cos(t3) + yc*np.sin(t3)
    B = ya - xc*np.sin(t3) - yc*np.cos(t3)
    return l2**2 - (A+l1*np.cos(t1))**2 - (B+l1*np.sin(t1))**2

# Initialisation des tableaux numpy
t3 = np.linspace(90.,180.,91)
t3rad = t3*np.pi/180.
t1 = np.linspace(0.,90.,91)
i = 0
ti1 = 0

# Résolution
for ti3 in t3rad :
    ti1 = opt.newton(f, np.pi/2, fprime=None, args=(ti3,), tol=1.48e-08,maxiter=100, fprime2=None) 
    t1[i] = ti1
    i+=1
t1 = t1*180./np.pi

# Tracé
plt.plot(t1,t3,label='Théorie-Simulation')


## Tracé expérimental (angles en degrés)
mesures_theta_1 = [] # Liste à remplir
mesures_theta_3 = [] # Liste à remplir

plt.plot(mesures_theta_1,mesures_theta_3,label='Expérience')


## Options du graphique
plt.legend()
plt.grid(True)
plt.xlabel([90.,180.])
plt.xlabel('$\\theta_{1}$ (en degrés)')
plt.ylabel('$\\theta_{3}$ (en degrés)')
plt.show()
#plt.savefig('theta.pdf')