Код программы MainForm, страница 3

     double stepOX = (param_L * 2 + param_T) / (xCnt - 1); //шаг по OX      

            double stepOY = (param_L * 2 + param_T) / (yCnt - 1); //шаг по OY

            Sa = stepOX * stepOY / 2;

            double ox = 0, oy = 0;

            int kk = 0;

            bool st = false;

            oy = 0; //текущее положение по ОY

            int countAngle = 19;

            for (int j = 0; j <= yCnt; j++) //цикл для формирования узлов всей пластины

            {

                ox = 0;//текущее положение по ОХ

                for (int i = 0; i <= xCnt; i++) //цикл по OX

                {

                    st = false; //статус узла

                    if ((i == 19 && j < 1) || (i == 20 && j < 2) || (i == 21 && j < 3)

                        || (i == 22 && j < 4) || (i == 23 && j < 5) || (i == 24 && j < 6)

                        || (i == 25 && j < 7) || (i == 26 && j < 8))//проверка границы пластины

                    {

                        break;

                    }

                    //проверка узла находится ли в заклепке

                    if (((i == 4 || i == 14) && (j == 3 || j == 4 || j == 5 || j==13 || j==14 ||j==15)) || ((i == 3 || i == 5 || i == 13 || i == 15) && (j == 4 || j == 14)))

                    {                       

                        st = true;

                    }

                    allCountUsel++;

                    usels[j,i] = new Usel(ox, oy, st);

                    ox += stepOX;

                }

                oy += stepOY;

            }

            kk = 0;

            int kol = 0;

            for (int i = 0; i < yCnt; i++) //цикл по формированию всех элементов пластины

            {

                for (int j = 0; j < xCnt; j++)

                {

                    if ((j == 19 && i < 1) || (j == 20 && i < 2) || (j == 21 && i < 3)

                        || (j == 22 && i < 4) || (j == 23 && i < 5) || (j == 24 && i < 6)

                        || (j == 25 && i < 7) || (j == 26 && i < 8))

                        break;

                    coordx[kk] = i;

                    coordy[kk] = j;

                    mesh[kk] = new Mesh(usels[i, j],

                                        usels[i + 1,j],

                                        usels[i + 1,j + 1]);

                    kk++;

                    Debug.Print(i+"("+j+")" + "-1: "+i+ "="+j + " "+

                                                     +(i+1) + "=" + j + " " +

                                                     +(i+1)+ "="+(j+1));

                    if (i < 8 && j == countAngle - 1 + kol)//если на границе угловой пластины, то не нужно формировать нижний треугольник

                    {

                    }

                    else

                    {

                        Debug.Print(i + "(" + j + ")" + "-2: " + i + "=" + j + " " +

                                                     +(i + 1) + "=" + (j + 1) + " " +

                                                     + i + "=" + (j + 1));

                        coordx[kk] = i;

                        coordy[kk] = j;

                        mesh[kk] = new Mesh(usels[i, j],

                                        usels[i + 1, j + 1],

                                        usels[i, j + 1]);

                        kk++;                       

                    }

                }

                kol++;

            }                 

        }

        private void MainForm_Load(object sender, EventArgs e)

        {//установка настроек для формы, на которой будет отрисовываться пластин

            Gl.glShadeModel(Gl.GL_SMOOTH);                                      // Enable Smooth Shading

            Gl.glClearDepth(1);                                                 // Depth Buffer Setup

            Gl.glEnable(Gl.GL_DEPTH_TEST);                                      // Enables Depth Testing

            Gl.glDepthFunc(Gl.GL_LEQUAL);                                       // The Type Of Depth Testing To Do

            Gl.glHint(Gl.GL_PERSPECTIVE_CORRECTION_HINT, Gl.GL_NICEST);