Главный рисователь полигонов по x,y,z-координатам:
Здесь мы просто вычисляем порядковые номера четырёх точек каждого полигона, то есть именно здесь привязываем вычисленные 3D точки к конкретным полигонам. Это делает "цикл" по рядам и колоннам полигонов.
Точки сохраняются в массиве переменной SetPolygon
zz - номер полигона по порядку.
Второй "цикл", это закрытие шва нашей "простыни".
//*************************
RisPol(vDoc)//Главный рисователь полигонов по x,y,z-координатам
{
zz=0;
for (i=0;i<Nu-1;i++)
{
for (j=0;j<Nv-1;j++)
{
P1=i*Nv+j;
P2=i*Nv+j+1;
P4=(i+1)*Nv+j;
P3=(i+1)*Nv+j+1;
para->SetPolygon(zz,P1,P2,P3,P4);
zz=zz+1;
}
}
for (i=0;i<Nu-1;i++)
{
P1=i*Nv;
P2=(i+1)*Nv-1;
P4=(i+1)*Nv;
P3=(i+2)*Nv-1;
para->SetPolygon(zz,P4,P3,P2,P1);
zz=zz+1;
}
}
//**************************
Здесь мы просто вычисляем порядковые номера четырёх точек каждого полигона, то есть именно здесь привязываем вычисленные 3D точки к конкретным полигонам. Это делает "цикл" по рядам и колоннам полигонов.
Точки сохраняются в массиве переменной SetPolygon
zz - номер полигона по порядку.
Второй "цикл", это закрытие шва нашей "простыни".
//*************************
RisPol(vDoc)//Главный рисователь полигонов по x,y,z-координатам
{
zz=0;
for (i=0;i<Nu-1;i++)
{
for (j=0;j<Nv-1;j++)
{
P1=i*Nv+j;
P2=i*Nv+j+1;
P4=(i+1)*Nv+j;
P3=(i+1)*Nv+j+1;
para->SetPolygon(zz,P1,P2,P3,P4);
zz=zz+1;
}
}
for (i=0;i<Nu-1;i++)
{
P1=i*Nv;
P2=(i+1)*Nv-1;
P4=(i+1)*Nv;
P3=(i+2)*Nv-1;
para->SetPolygon(zz,P4,P3,P2,P1);
zz=zz+1;
}
}
//**************************
Комментариев нет:
Отправить комментарий