//Mise à jour Z internal void UpdatePointsTests_Z(ref List <BeanPoint_internal> p_points, BeanParamGenerationAutoDePointsTests p_paramGenerationPointsTest) { try { switch (p_paramGenerationPointsTest.p02_modeGenerationEnZ) { case enumMethodeGenerationValeursEnZ.altitudeConstante: UpdatePointsTests_Z_constante(ref p_points, p_paramGenerationPointsTest); break; case enumMethodeGenerationValeursEnZ.plan: UpdatePointsTests_Z_NonConstante(ref p_points, p_paramGenerationPointsTest); break; case enumMethodeGenerationValeursEnZ.paraboloideElliptique: UpdatePointsTests_Z_NonConstante(ref p_points, p_paramGenerationPointsTest); break; case enumMethodeGenerationValeursEnZ.paraboloideHyperbolique: UpdatePointsTests_Z_NonConstante(ref p_points, p_paramGenerationPointsTest); break; default: throw new Exception("Méthode " + p_paramGenerationPointsTest.p02_modeGenerationEnZ + " non implémentée"); } } catch (Exception) { throw; } }
//Couverture XY internal List <BeanPoint_internal> GetPointsTestsXY(BeanParamGenerationAutoDePointsTests p_paramGenerationPointsTest) { List <BeanPoint_internal> v_pointsToTest = new List <BeanPoint_internal>(); try { switch (p_paramGenerationPointsTest.p01_modeGenerationXY) { case enumMethodeGenerationPtsEnXetY.repartitionAleatoireUniforme: v_pointsToTest = GetPointsTestsXY_RepartitionUniforme(p_paramGenerationPointsTest); break; case enumMethodeGenerationPtsEnXetY.carroyageRegulierParPas: v_pointsToTest = GetPointsTestsXY_RepartitionReguliere(p_paramGenerationPointsTest); break; default: throw new Exception("Méthode " + p_paramGenerationPointsTest.p01_modeGenerationXY + " non implémentée"); } } catch (Exception) { throw; } return(v_pointsToTest); }
private Dictionary <enumCoeffRecalage, double> RenormalisationDuPlanXY(BeanParamGenerationAutoDePointsTests p_paramGenerationPointsTest) { Dictionary <enumCoeffRecalage, double> v_coeff = new Dictionary <enumCoeffRecalage, double>(); try { double v_origineX = p_paramGenerationPointsTest.p11_pointBasGaucheX; double v_origineY = p_paramGenerationPointsTest.p12_pointBasGaucheY; double v_centreX = ((p_paramGenerationPointsTest.p13_pointHautDroitX - p_paramGenerationPointsTest.p11_pointBasGaucheX) / 2) + p_paramGenerationPointsTest.p11_pointBasGaucheX; double v_centreY = ((p_paramGenerationPointsTest.p14_pointHautDroitY - p_paramGenerationPointsTest.p12_pointBasGaucheY) / 2) + p_paramGenerationPointsTest.p12_pointBasGaucheY; // double v_extensionX = Math.Abs(p_paramGenerationPointsTest.p13_pointHautDroitX - p_paramGenerationPointsTest.p11_pointBasGaucheX); double v_extensionY = Math.Abs(p_paramGenerationPointsTest.p14_pointHautDroitY - p_paramGenerationPointsTest.p12_pointBasGaucheY); double v_coeff_X = (p_paramGenerationPointsTest.p42_recalageMaxX - p_paramGenerationPointsTest.p41_recalageMinX) / v_extensionX; double v_coeff_Y = (p_paramGenerationPointsTest.p44_recalageMaxY - p_paramGenerationPointsTest.p43_recalageMinY) / v_extensionY; // v_coeff.Add(enumCoeffRecalage.centreX, v_centreX); v_coeff.Add(enumCoeffRecalage.centreY, v_centreY); v_coeff.Add(enumCoeffRecalage.origineX, v_origineX); v_coeff.Add(enumCoeffRecalage.origineY, v_origineY); // v_coeff.Add(enumCoeffRecalage.coeffRecalageY, v_coeff_Y); v_coeff.Add(enumCoeffRecalage.coeffRecalageX, v_coeff_X); } catch (Exception) { throw; } return(v_coeff); }
internal List <BeanPoint_internal> GetPointsTestsXY_RepartitionReguliere(BeanParamGenerationAutoDePointsTests p_paramGenerationPointsTest) { List <BeanPoint_internal> v_pointsToTest = new List <BeanPoint_internal>(); try { BeanPoint_internal v_point; double[] v_coord; double v_coordX = p_paramGenerationPointsTest.p11_pointBasGaucheX; double v_coordY = p_paramGenerationPointsTest.p12_pointBasGaucheY; while (v_coordX < p_paramGenerationPointsTest.p13_pointHautDroitX) { v_coordY = p_paramGenerationPointsTest.p12_pointBasGaucheY; while (v_coordY < p_paramGenerationPointsTest.p14_pointHautDroitY) { v_coord = new double[3]; v_coord[0] = v_coordX; v_coord[1] = v_coordY; v_point = new BeanPoint_internal(v_coord, p_paramGenerationPointsTest.p10_srid); v_pointsToTest.Add(v_point); // v_coordY += p_paramGenerationPointsTest.p32_pasEntrePointsEnM; } v_coordX += p_paramGenerationPointsTest.p32_pasEntrePointsEnM; v_coordY = p_paramGenerationPointsTest.p12_pointBasGaucheY; } } catch (Exception) { throw; } return(v_pointsToTest); }
private void RemonteParametres() { _paramGenerationPoints = new BeanParamGenerationAutoDePointsTests(); _paramGenerationPoints.p51_hauteurRefEnM = Convert.ToDouble(tb_hauteurMinEnM.Text); _paramGenerationPoints.p31_nbrePoints = Convert.ToInt32(tb_NbrePoints.Text); _paramGenerationPoints.p11_pointBasGaucheX = Convert.ToDouble(tb_pointBasGaucheX.Text); _paramGenerationPoints.p12_pointBasGaucheY = Convert.ToDouble(tb_pointBasGaucheY.Text); _paramGenerationPoints.p13_pointHautDroitX = Convert.ToDouble(tb_pointHautDroitX.Text); _paramGenerationPoints.p14_pointHautDroitY = Convert.ToDouble(tb_pointHautDroitY.Text); _paramGenerationPoints.p32_pasEntrePointsEnM = Convert.ToDouble(tb_pasSeparationEntrePoints.Text); _paramGenerationPoints.p32_seed = Convert.ToInt32(tb_seed.Text); // _paramGenerationPoints.p01_modeGenerationXY = (enumMethodeGenerationPtsEnXetY)Enum.Parse(typeof(enumMethodeGenerationPtsEnXetY), lb_modeGenerationXY.SelectedItem.ToString(), true); // _paramGenerationPoints.p02_modeGenerationEnZ = (enumMethodeGenerationValeursEnZ)Enum.Parse(typeof(enumMethodeGenerationValeursEnZ), lb_modeGenerationZ.SelectedItem.ToString(), true); // if (lb_srid.SelectedItem.ToString() == enumSrid.Lambert93.ToString()) { _paramGenerationPoints.p10_srid = 2154; } else { throw new Exception("Méthode " + lb_srid.SelectedItem.ToString() + " non implémentée"); } // _paramGenerationPoints.p41_recalageMinX = Convert.ToDouble(tb_recalageMinX.Text); _paramGenerationPoints.p42_recalageMaxX = Convert.ToDouble(tb_recalageMaxX.Text); _paramGenerationPoints.p43_recalageMinY = Convert.ToDouble(tb_recalageMinY.Text); _paramGenerationPoints.p44_recalageMaxY = Convert.ToDouble(tb_recalageMaxY.Text); // _paramGenerationPoints.p52_coeff_X = Convert.ToDouble(tb_coeffX.Text); _paramGenerationPoints.p53_coeff_Y = Convert.ToDouble(tb_coeffY.Text); }
void UpdatePointsTests_Z_constante(ref List <BeanPoint_internal> p_points, BeanParamGenerationAutoDePointsTests p_paramGenerationPointsTest) { try { foreach (BeanPoint_internal v_point in p_points) { v_point.p10_coord[2] = p_paramGenerationPointsTest.p51_hauteurRefEnM; } } catch (Exception) { throw; } }
public List <BeanPoint_internal> GetPointsTests(BeanParamGenerationAutoDePointsTests p_paramGenerationPointsTest) { List <BeanPoint_internal> v_pointsToTest = new List <BeanPoint_internal>(); try { v_pointsToTest = GetPointsTestsXY(p_paramGenerationPointsTest); UpdatePointsTests_Z(ref v_pointsToTest, p_paramGenerationPointsTest); } catch (Exception) { throw; } return(v_pointsToTest); }
internal List <BeanPoint_internal> GetPointsTestsXY_RepartitionUniforme(BeanParamGenerationAutoDePointsTests p_paramGenerationPointsTest) { List <BeanPoint_internal> v_pointsToTest = new List <BeanPoint_internal>(); try { Random v_random = new Random(p_paramGenerationPointsTest.p32_seed); double[] v_coord; //[Attention: nécessité de passer en int) int v_minX = Convert.ToInt32(Math.Round(p_paramGenerationPointsTest.p11_pointBasGaucheX, 0)); int v_maxX = Convert.ToInt32(Math.Round(p_paramGenerationPointsTest.p13_pointHautDroitX, 0)); int v_minY = Convert.ToInt32(Math.Round(p_paramGenerationPointsTest.p12_pointBasGaucheY, 0)); int v_maxY = Convert.ToInt32(Math.Round(p_paramGenerationPointsTest.p14_pointHautDroitY, 0)); // HashSet <string> p_codes = new HashSet <string>(); string p_code; int v_no = 0; for (v_no = 1; v_no <= p_paramGenerationPointsTest.p31_nbrePoints;) { v_coord = new double[3]; v_coord[0] = v_random.Next(v_minX, v_maxX); v_coord[1] = v_random.Next(v_minY, v_maxY); v_coord[2] = 0; // BeanPoint_internal v_point = new BeanPoint_internal(v_coord, p_paramGenerationPointsTest.p10_srid); // p_code = FLabServices.createUtilitaires().GethCodeGeogPoint(v_coord); p_code = FLabServices.createUtilitaires().GetHCodeGeogPoint(v_coord); //(On évite les doublons) if (!p_codes.Contains(p_code)) { p_codes.Add(p_code); v_pointsToTest.Add(v_point); v_no++; } } } catch (Exception) { throw; } return(v_pointsToTest); }
void UpdatePointsTests_Z_NonConstante(ref List <BeanPoint_internal> p_points, BeanParamGenerationAutoDePointsTests p_paramGenerationPointsTest) { try { Dictionary <enumCoeffRecalage, double> v_coeffRecalage = RenormalisationDuPlanXY(p_paramGenerationPointsTest); // double[] v_coordRecalees; foreach (BeanPoint_internal v_point in p_points) { v_coordRecalees = GetValeurXYNormalisees(v_point.p10_coord, v_coeffRecalage); switch (p_paramGenerationPointsTest.p02_modeGenerationEnZ) { case enumMethodeGenerationValeursEnZ.plan: v_point.p10_coord[2] = (v_coordRecalees[0] * p_paramGenerationPointsTest.p52_coeff_X) + (v_coordRecalees[1] * p_paramGenerationPointsTest.p53_coeff_Y) + p_paramGenerationPointsTest.p51_hauteurRefEnM; break; case enumMethodeGenerationValeursEnZ.paraboloideElliptique: v_point.p10_coord[2] = (v_coordRecalees[0] * v_coordRecalees[0] * p_paramGenerationPointsTest.p52_coeff_X) + (v_coordRecalees[1] * v_coordRecalees[1] * p_paramGenerationPointsTest.p53_coeff_Y) + p_paramGenerationPointsTest.p51_hauteurRefEnM; break; case enumMethodeGenerationValeursEnZ.paraboloideHyperbolique: v_point.p10_coord[2] = (( ((v_coordRecalees[0] / p_paramGenerationPointsTest.p52_coeff_X) * (v_coordRecalees[0] / p_paramGenerationPointsTest.p52_coeff_X)) + ((v_coordRecalees[1] / p_paramGenerationPointsTest.p53_coeff_Y) * (v_coordRecalees[1] / p_paramGenerationPointsTest.p53_coeff_Y)) ) * -1) + p_paramGenerationPointsTest.p51_hauteurRefEnM; break; default: throw new Exception("Méthode " + p_paramGenerationPointsTest.p02_modeGenerationEnZ + " non implémentée."); } } } catch (Exception) { throw; } }
public void TestOrdonnancement() { double v_xMin = 1500000; double v_yMin = 6000000; // //double[] v_point1; //double[] v_point2; //double[] v_point3; Dictionary <int, double[]> v_points = new Dictionary <int, double[]>(); bool v_renvoyerNullSiColineaire_vf; bool v_horaire_vf; ////Triangle 1 //v_point1 = new double[2] { v_xMin + 50, v_yMin + 100 }; //v_point2 = new double[2] { v_xMin, v_yMin }; //v_point3 = new double[2] { v_xMin + 100, v_yMin}; ////Triangle 2 //v_point1 = new double[2] { v_xMin + 50, v_yMin + 100 }; //v_point2 = new double[2] { v_xMin, v_yMin }; //v_point3 = new double[2] { v_xMin + 100, v_yMin-50 }; ////Triangle 3 //v_point1 = new double[2] { v_xMin + 50, v_yMin + 100 }; //v_point2 = new double[2] { v_xMin, v_yMin }; //v_point3 = new double[2] { v_xMin + 100, v_yMin+500 }; //v_points.Add(1, v_point1); //v_points.Add(2, v_point2); //v_points.Add(3, v_point3); //Groupe de points: BeanParamGenerationAutoDePointsTests v_paramGenerationPoints = new BeanParamGenerationAutoDePointsTests(); v_paramGenerationPoints.p51_hauteurRefEnM = 100; v_paramGenerationPoints.p31_nbrePoints = 5; v_paramGenerationPoints.p11_pointBasGaucheX = v_xMin; v_paramGenerationPoints.p12_pointBasGaucheY = v_yMin; v_paramGenerationPoints.p13_pointHautDroitX = v_xMin + v_paramGenerationPoints.p51_hauteurRefEnM; v_paramGenerationPoints.p14_pointHautDroitY = v_yMin + v_paramGenerationPoints.p51_hauteurRefEnM; v_paramGenerationPoints.p32_pasEntrePointsEnM = 6; v_paramGenerationPoints.p32_seed = 13; List <BeanPoint_internal> v_pointsTests; v_pointsTests = FServicesApplicatifs.createEchantillonsTestsServices().GetPointsTests(v_paramGenerationPoints); int v_indice = 0; v_points = v_pointsTests.ToDictionary(c => v_indice++, c => c.p10_coord); // v_renvoyerNullSiColineaire_vf = true; v_horaire_vf = false; List <int> v_pointsOrdonnances; v_pointsOrdonnances = FServicesApplicatifs.createCalculServicesLow_testDivers().GetOrdonnancement(v_points, v_renvoyerNullSiColineaire_vf, v_horaire_vf); string v_sens = "hor."; if (!v_horaire_vf) { v_sens = "antih."; } int v_no = 1; foreach (int v_id in v_pointsOrdonnances) { VisuPointSuppl(v_points[v_id], "no: " + v_no + " (pt " + v_id + " " + v_sens + ")", 2); v_no++; } ////SpatialTrace.ShowDialog(); }