/// <summary> /// Méthode qui permet de créer l'indicateur et l'ajouter en fonction du type d'indicateur /// </summary> private void creerIndicateur() { switch (typeIndicateur) { case "Taux de recouvrement": IndicateurTauxRecouvrement tauxRecouvrement = new IndicateurTauxRecouvrement(positions, ordres, modPA, modS, groupes); AppData.IndicateursTauxRecouvrement.Add(tauxRecouvrement); AppData.IndicateursTauxRecouvrement.Last().determineTaux(); break; case "Densité de recouvrement": IndicateurDensiteRecouvrement densiteRecouvrement = new IndicateurDensiteRecouvrement(positions, ordres, modPA, modS, groupes); AppData.IndicateursDensiteRecouvrement.Add(densiteRecouvrement); AppData.IndicateursDensiteRecouvrement.Last().determineDensite(); break; case "Dispersion PA": IndicateurDispersionPA dispersionPA = new IndicateurDispersionPA(positions, ordres, modPA, modS, groupes); AppData.IndicateursDispersionPA.Add(dispersionPA); AppData.IndicateursDispersionPA.Last().determineDispersion(); break; case "Nombre d'allers retours bandeau / image": IndicateurAllerRetour allerRetour = new IndicateurAllerRetour(positions, ordres, modPA, modS, groupes); AppData.IndicateursAllerRetour.Add(allerRetour); AppData.IndicateursAllerRetour.Last().determineAllerRetour(); break; default: break; } }
/// <summary> /// Méthode qui permet de comparer les taux de deux indicateurs /// </summary> /// <param name="type">Type de comparaison</param> public void compareAllerRetour(TypeComp type) { // Création du nouvel indicateur de comparaison IndicateurAllerRetour resultat = new IndicateurAllerRetour(fusionUsers(this, IndicCompare), fusionOrdres(this, IndicCompare), fusionPA(this, IndicCompare), fusionS(this, IndicCompare), fusionGroupes(this, IndicCompare)); // On cherche à comparer les deux dictionnaires Dictionary<ImageExp, List<double>> dico = new Dictionary<ImageExp,List<double>>(); // On remplit le dictionnaire avec les données du premier indicateur foreach (ImageExp img in this.Data.Keys) { if (dico.ContainsKey(img)) { dico[img].Add(this.Data[img]); } else { dico.Add(img, new List<double>()); dico[img].Add(this.Data[img]); } } // On remplit le dictionnaire avec les données du second indicateur foreach (ImageExp img in IndicCompare.Data.Keys) { if (dico.ContainsKey(img)) { dico[img].Add(IndicCompare.Data[img]); } else { dico.Add(img, new List<double>()); dico[img].Add(IndicCompare.Data[img]); } } //Puis on procède à la comparaison voulue // Ne pas oublier de remplir le dico de l'indicateur à chaque étape if (type == TypeComp.Add) { resultat.Data = additionner(dico); } else if (type == TypeComp.Sous) { resultat.Data = soustraire(dico); } else { resultat.Data = moyenner(dico); } DataComparaison.Add(this.Data); DataComparaison.Add(IndicCompare.Data); DataComparaison.Add(resultat.Data); }