Exemplo n.º 1
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();
        }
Exemplo n.º 2
0
 private void decomposeWithStarToolStripMenuItem_Click(object sender, EventArgs e)
 {
     decompositor = new PentagonDecSquare();
     Build_Click(sender, e);
 }
Exemplo n.º 3
0
 private void decomposeOnToolStripMenuItem_Click(object sender, EventArgs e)
 {
     decompositor = new PentagonDecTetraAndTri();
     Build_Click(sender, e);
 }
Exemplo n.º 4
0
 private void decomposeOnTrianglesToolStripMenuItem_Click(object sender, EventArgs e)
 {
     decompositor = new PentagonTriangleDecompose();
     Build_Click(sender, e);
 }