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);
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.