Commit 1fb66d71 authored by Matthieu Boileau's avatar Matthieu Boileau

update tp6

parent 8b699c67
Pipeline #3999 passed with stages
in 2 minutes and 1 second
......@@ -12,20 +12,36 @@ using namespace std;
int main() {
// Création du graphe de villes
graphe<ModeleSir> france;
// On crée une liste des noms de villes
vector<string> villes;
noeud<ModeleSir> Paris;
villes.push_back("Paris");
france.ajout_noeud(&Paris); // 0
noeud<ModeleSir> Lille;
villes.push_back("Lille");
france.ajout_noeud(&Lille); //1
noeud<ModeleSir> Bordeaux;
villes.push_back("Bordeaux");
france.ajout_noeud(&Bordeaux); //2
noeud<ModeleSir> Strasbourg;
villes.push_back("Strasbourg");
france.ajout_noeud(&Strasbourg); //3
noeud<ModeleSir> Nantes;
villes.push_back("Nantes");
france.ajout_noeud(&Nantes); //4
noeud<ModeleSir> Lyon;
villes.push_back("Lyon");
france.ajout_noeud(&Lyon); //5
noeud<ModeleSir> Marseille;
villes.push_back("Marseille");
france.ajout_noeud(&Marseille); //6
// Ordre des paramètres dans le constructeur du modèle :
......@@ -142,40 +158,17 @@ int main() {
//myfile.close();
cout << "Final time : " << solveur_temps.getCurrentTime() << endl;
cout << "Values for Paris : " << endl;
for (int i=0; i<3; i++) {
cout << solveur_temps.getSolutionCurrentTime()[i] << endl;
}
cout << "Values for Lille : " << endl;
for (int i=3; i<6; i++) {
cout << solveur_temps.getSolutionCurrentTime()[i] << endl;
}
cout << "Values for Bordeaux : " << endl;
for (int i=6; i<9; i++) {
cout << solveur_temps.getSolutionCurrentTime()[i] << endl;
}
cout << "Values for Strasbourg : " << endl;
for (int i=9; i<12; i++) {
cout << solveur_temps.getSolutionCurrentTime()[i] << endl;
}
cout << "Values for Nantes : " << endl;
for (int i=12; i<15; i++) {
cout << solveur_temps.getSolutionCurrentTime()[i] << endl;
}
cout << "Values for Lyon : " << endl;
for (int i=15; i<18; i++) {
cout << solveur_temps.getSolutionCurrentTime()[i] << endl;
}
cout << "Values for Marseille : " << endl;
for (int i=18; i<21; i++) {
cout << solveur_temps.getSolutionCurrentTime()[i] << endl;
// On boucle sur les villes pour afficher la solution finale et tracer l'évolution temporelle
for (int k=0; k<villes.size(); k++) {
cout << "Values for " << villes[k] << " : " << endl;
for (int i=k*3; i<(k+1)*3; i++) {
cout << solveur_temps.getSolutionCurrentTime()[i] << endl;
}
solveur_temps.plotSolution(k, villes[k]);
}
solveur_temps.plotSolution(0, "Paris");
solveur_temps.plotSolution(1, "Lille");
solveur_temps.plotSolution(2, "Bordeaux");
solveur_temps.plotSolution(3, "Strasbourg");
solveur_temps.plotSolution(-7, "Total");
solveur_temps.plotSolution(-villes.size(), "Total");
return 0;
}
......@@ -47,10 +47,10 @@ vector<double> SolveurTemps::getSolutionCurrentTime() {
void SolveurTemps::plotSolution(const int inoeud, const string& city) {
int nstep = m_variablesTemps.size();
std::vector<double> t(nstep);
std::vector<double> s(nstep);
std::vector<double> i(nstep);
std::vector<double> r(nstep);
vector<double> t(nstep);
vector<double> s(nstep);
vector<double> i(nstep);
vector<double> r(nstep);
if (inoeud >= 0) {
// On cible la ville inoeud
......@@ -75,20 +75,26 @@ void SolveurTemps::plotSolution(const int inoeud, const string& city) {
}
}
std::map<string, string> keywords;
map<string, string> keywords;
keywords["label"] = "S";
plt::plot(t, s, keywords);
keywords["label"] = "I";
plt::plot(t, i, keywords);
keywords["label"] = "R";
plt::plot(t, r, keywords);
plt::legend();
plt::legend(); // On affiche la légende
plt::title(city);
plt::xlabel("t");
//plt::show();
const string& filename = city + ".png";
plt::save(filename);
cout << "Tracé sauvé dans " << filename << endl;
plt::close();
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment