コード例 #1
0
        public void GenerateTest()
        {
            ICurve        curve1 = new Line(new Point(0, 0), new Point(1, 0));
            ICurve        curve2 = new Line(new Point(1, 0), new Point(1, 1));
            ICurve        curve3 = new Line(new Point(1, 1), new Point(0, 1));
            ICurve        curve4 = new Line(new Point(0, 1), new Point(0, 0));
            List <ICurve> curves = new List <ICurve>();

            curves.Add(curve1);
            curves.Add(curve2);
            curves.Add(curve3);
            curves.Add(curve4);


            int nX = 1;                                                // TODO: инициализация подходящего значения
            int nY = 1;                                                // TODO: инициализация подходящего значения
            QuadCleverMeshGen target  = new QuadCleverMeshGen(nX, nY); // TODO: инициализация подходящего значения
            IContour          contour = new Contour(curves);;          // TODO: инициализация подходящего значения
            //List<RegMesh2D> expected = new List<RegMesh2D>(new Point(0,0),new Point(1,0),new Point(1,1),new Point(0,1)); // TODO: инициализация подходящего значения
            List <RegMesh2D> mesh = new List <RegMesh2D>();

            IPoint[,] Points = new Point[2, 2];
            Points[0, 0]     = new Point(0, 0);
            Points[0, 1]     = new Point(1, 0);
            Points[1, 0]     = new Point(1, 1);
            Points[1, 1]     = new Point(0, 1);
            mesh.Add(new RegMesh2D(Points, 2, 2));
            List <RegMesh2D> actual;

            actual = target.Generate(contour);
            CollectionAssert.AreEqual(mesh, actual);
        }
コード例 #2
0
        private void Build_Click(object sender, EventArgs e)
        {
            Contour contour = new Contour(curves);

            if (contour.Size < 3 || contour.Size > 5)
            {
                return;
            }
            if (contour.Size == 5)
            {
                if (decompositor == null)
                {
                    decompositor = new PentagonTriangleDecompose();
                }
                IContour[] contourTEST;
                meshs = new List <RegMesh2D>();
                IMeshGen generator;                             // = new TriaMeshGen(10, 10);
                contourTEST = decompositor.decomposed(contour); //тестовый код для пятиугольника
                foreach (var x in contourTEST)
                {
                    if (x.Size == 4)
                    {
                        generator = new QuadCleverMeshGen(10);
                        meshs.AddRange(generator.Generate(x));
                    }
                    if (x.Size == 3)
                    {
                        generator = new TriaMeshGen(10);
                        meshs.AddRange(generator.Generate(x));
                    }
                }
            }
            if (contour.Size == 4)
            {
                //IMeshGen generator = new QuadSimpleMeshGen(10, 10);
                IMeshGen generator = new QuadCleverMeshGen(10);
                //IMeshGen generator = new TriaMeshGen(10, 10);
                meshs = new List <RegMesh2D>();
                meshs.Add(generator.Generate(contour)[0]);
            }
            if (contour.Size == 3)
            {
                meshs = new List <RegMesh2D>();
                IMeshGen generator = new TriaMeshGen(10);
                meshs = generator.Generate(contour);
            }
            double qualitySum = 0;

            for (int i = 0; i < meshs.Count(); i++)
            {
                qualitySum += quality.Calculate(meshs[i]);
            }
            Quality.Text = Convert.ToString(qualitySum / meshs.Count());
            Refresh();
        }
コード例 #3
0
 public void QuadCleverMeshGenConstructorTest()
 {
     int nX = 0; // TODO: инициализация подходящего значения
     int nY = 0; // TODO: инициализация подходящего значения
     QuadCleverMeshGen target = new QuadCleverMeshGen(nX, nY);
 }