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; } }
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); } } }