Exemple #1
0
 public void GetVisuPointsAlti(List <BeanPoint_internal> p_points, int p_nbreClasses, bool p_croissantSinonDecroissant, enumModeSeuillage p_methodeDeSeuillage, enumProgressionCouleurs p_progressionCouleurs, int p_alpha, int p_taillePointAutoSi0OuMoins)
 {
     try
     {
         int param_ratioTaillePoint = 100;
         int v_taillePoints         = p_taillePointAutoSi0OuMoins;
         if (p_taillePointAutoSi0OuMoins <= 0)
         {
             v_taillePoints = GetTailleAffichageDuPoint(p_points, param_ratioTaillePoint);
         }
         //
         Dictionary <string, List <BeanPoint_internal> > v_classifDesPoints;
         v_classifDesPoints = FVisualisationServices.createSeuillageServices().GetPointsParClasseOrdonnees(p_points, p_nbreClasses, p_methodeDeSeuillage);
         Dictionary <string, Color> v_tableCouleurs;
         v_tableCouleurs = FVisualisationServices.createVisualisationSpatialTraceServices().GetTableCouleursDegradees(v_classifDesPoints.Keys.ToList(), p_progressionCouleurs, p_alpha, p_croissantSinonDecroissant);
         //
         GetVisuPointsAlti(v_classifDesPoints, v_tableCouleurs, v_taillePoints);
     }
     catch (Exception)
     {
         throw;
     }
 }
Exemple #2
0
        public void GetVisuPentesFacettes(BeanTopologieFacettes p_topologieFacettes, int p_nbreClasses)
        {
            bool param_sensCouleursCroissant     = true;
            bool param_visupointsInclus_vf       = false;
            bool param_afficherMemeSiInvalide_vf = false;
            Dictionary <int, double>         v_penteDesfacettes = p_topologieFacettes.p13_facettesById.ToDictionary(c => c.Key, c => c.Value.getPente());
            Dictionary <string, List <int> > v_facettesParClasse;

            //v_facettesParClasse = FVisualisationServices.createSeuillageServices().GetIdParClassesOrdonnees_parIsoQuantite(v_penteDesfacettes, p_nbreClasses);

            //Pentes suspectes?
            double param_seuilMaxi = (Math.PI / 2) - 0.01;

            double v_min       = v_penteDesfacettes.Values.Min();
            double v_max       = v_penteDesfacettes.Values.Max();
            double v_minRecale = Math.Max(v_min, 0);
            double v_maxRecale = Math.Min(v_max, param_seuilMaxi);
            int    param_alpha = 120;
            Dictionary <int, double> v_seuilsBas;

            //On effectue une classification d'abord de la zone 'vraisemblable' (0 à approx 90)
            //v_seuilsBas=FVisualisationServices.createSeuillageServices().GetSeuilBasClasses_memeEspaceInterclasse(p_nbreClasses, v_minRecale, v_maxRecale);
            v_seuilsBas = FVisualisationServices.createSeuillageServices().GetSeuilBasClasses_parIsoQuantite(v_penteDesfacettes, p_nbreClasses);
            //On identifie les éventuels cas à PB
            if (v_min < 0)
            {
                v_seuilsBas.Add(0, v_min);
            }
            if (v_max > param_seuilMaxi)
            {
                v_seuilsBas.Add(p_nbreClasses + 1, v_maxRecale);
            }
            v_seuilsBas = v_seuilsBas.OrderBy(c => c.Key).ToDictionary(c => c.Key, c => c.Value);
            //

            v_facettesParClasse = FVisualisationServices.createSeuillageServices().GetClassesOrdonnees_parSeuilsDeValeur(v_penteDesfacettes, v_seuilsBas); Dictionary <string, Color> v_tableCouleurs;
            v_tableCouleurs     = GetTableCouleursDegradees(v_facettesParClasse.Keys.ToList(), enumProgressionCouleurs.greenVersRed, param_alpha, param_sensCouleursCroissant);

            if (v_min < 0)
            {
                v_tableCouleurs[v_tableCouleurs.First().Key] = Color.Yellow;
            }
            if (v_max > param_seuilMaxi)
            {
                v_tableCouleurs[v_tableCouleurs.Last().Key] = Color.Purple;
            }

            Color  v_couleur;
            string v_label;
            double v_convertToDegree = 180 / Math.PI;

            foreach (KeyValuePair <string, List <int> > v_classe in v_facettesParClasse)
            {
                v_couleur = v_tableCouleurs[v_classe.Key];
                foreach (int v_idFacette in v_classe.Value)
                {
                    v_label = v_classe.Key + " (" + Math.Round(v_penteDesfacettes[v_idFacette] * v_convertToDegree, 3) + " deg)";
                    GetVisuFacette(p_topologieFacettes.p13_facettesById[v_idFacette], v_label, v_couleur, param_visupointsInclus_vf, param_afficherMemeSiInvalide_vf);
                }
            }
        }