Разработка информационной системы для деканата высшего учебного заведения
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
pen()) return 0;name[32];
buff;(!file.eof())">_splitpath(FileName.c_str(),NULL,NULL,name,NULL);=name;("СОКО - Чтение ASCII"); buff;(!file.eof())
{>>val;.push_back(val);++;
}.make(size/3);.close();i=0, coord=0;(int j=0;j<size-1;j++)
{(coord)
{0:[i].r.x=buff[j];=1;;1:[i].r.y=buff[j];=2;(merkator) MerToGeo(q[i].r.x,q[i].r.y);;2:[i].r.z=(-minus*2+1)*buff[j];=0;(q[i].r.xmax.z) max.z=q[i].r.z;++;;
}
}("СОКО");1;
}bath::LoadSlg(DoubleTable &table, AnsiString name)
{
#define FEET_TO_M 0.3048c=0,n=1,num;depth=0;("СОКО - Чтение slg");(int i=1;i<table.d.m;i++)
{(table.d[13][i]!=0) c++;
}(c>=table.d.m) return 0;.make(c);=0;i;(i=1;i<table.d.m;i++)
{(table.d[13][i]!=0)
{(c>0)
{[c-1].r.z=-(depth/n)*FEET_TO_M;(q[c-1].r.xmax.z) max.z=q[c-1].r.z;
}[c].r.x=table.d[13][i];[c].r.y=table.d[14][i];[c].t=table.d[21][i];(q[c].r.x,q[c].r.y);=table.d[3][i];=1;++;
}
{++;+=table.d[3][i];
}
}[c-1].r.z=-(depth/n)*FEET_TO_M;(q[c-1].r.xmax.z) max.z=q[c-1].r.z;=name;("СОКО");=1;1;
}bath::MakeEmpty(int length)
{.make(length);1;
}bath::CountTide(cubic_spline &spl)
{(slg)
{((double)startDate==0.0) return;(int i=0;i<q.size();i++)
{(hasTide)[i].tide=spl.f(startDate+q[i].t/86400000.0);[i].tide=0;
}
}
{((double)startDate==0.0 || (double)endDate==0.0) return;current;(int i=0;i<q.size();i++)
{(hasTide)[i].tide=spl.f((double)startDate+((double)endDate-
(double)startDate)*(i/(double)q.size()));[i].tide=0;
}
}
}bath::ReCountMinMax()
{.x=MAX;.x=MIN;.y=MAX;.y=MIN;.z=MAX;.z=MIN;(int i=0;i<q.size();i++)
{(q[i].r.xmax.z) max.z=q[i].r.z;
}=0;
}bath::ReCountMin()
{min=MAX;(int i=0;i<q.size();i++)
{(q[i].r.z<min) min=q[i].r.z;
}min;
}bath::CountNet(int TexNum, point3D Min, point3D Max, double Sclxy,Sclz, double Cfx, double Cfy, double D, int N, double rad,isoHABA, int maskBlurCount, int FigHaba, int IsolineSize, *Isolist, bool VarIso)
{=FigHaba;=Sclxy;=Sclz;=Min;=Max;=D;=TexNum;=isoHABA;=IsolineSize;=Isolist;=VarIso;=cfy*N;=cfx*N;(int i=0;i<q.size();i++)
{[i].m.x=sclxy*(q[i].r.x-min.x-(max.x-min.x)/2);[i].m.y=sclxy*(q[i].r.y-min.y-(max.y-min.y)/2);[i].m.z=sclz*(q[i].r.z+q[i].tide*(hasTide)-min.z-(max.z-min.z)/2);
}.z=sclz*(min.z-min.z-(max.z-min.z)/2);.z=sclz*(max.z-min.z-(max.z-min.z)/2);("СОКО - триангуляция");();("СОКО - триангуляция завершена");=0;(!p.make(width,height)) return 0;("СОКО - создана сетка");(!blurBuff.make(width,height))
{("СОКО - не создана буферная сетка");0;
}
{("СОКО - создана буферная сетка");
}(!MakeArray(height,width)) return 0;("СОКО - создана текстура");ls,hs,ls2,l,mn,lm;(max.y-min.y>max.x-min.x)=SphereLenght(min.x, min.y, min.x, max.y);=SphereLenght(min.x, min.y, max.x, min.y);
int km=0;("СОКО - обнуление сетки");
for(int j=0;j<width;j++)
{(int i=0;i<height;i++)
{[i][j].x=-cfx/2+d*i;[i][j].y=-cfy/2+d*j;[i][j].z=0;[i][j].b=p[i][j].z;[i][j]=p[i][j].z;[i][j].e=0;
}
}ia,ib,ja,jb;ta=0,tb=0,tc=1,td=0;("СОКО - расчёт треугольников");(int k=0;k<tri.size();k++)
{=floor((MinFrom3(q[tri[k].a].m.x,[tri[k].b].m.x,q[tri[k].c].m.x)+cfx/2)/d);=ceil((MaxFrom3(q[tri[k].a].m.x,[tri[k].b].m.x,q[tri[k].c].m.x)+cfx/2)/d);=floor((MinFrom3(q[tri[k].a].m.y,[tri[k].b].m.y,q[tri[k].c].m.y)+cfy/2)/d);=ceil((MaxFrom3(q[tri[k].a].m.y,[tri[k].b].m.y,q[tri[k].c].m.y)+cfy/2)/d);(iawidth) continue;(!CorrectTria(q[tri[k].a].m,[tri[k].b].m,q[tri[k].c].m,rad/lm)) continue;([tri[k].a].m.x,q[tri[k].b].m.x,q[tri[k].c].m.x,[tri[k].a].m.y,q[tri[k].b].m.y,q[tri[k].c].m.y,[tri[k].a].m.z,q[tri[k].b].m.z,q[tri[k].c].m.z,,tb,tc,td);(int j=ja;j<jb;j++)
{(int i=ia;i<ib;i++)
{(InTriangle(q[tri[k].a].m,[tri[k].b].m,q[tri[k].c].m,p[i][j])
=0&&tri[k].a=0 && tri[k].a<q.size()
=0&&tri[k].b=0 && tri[k].b<q.size()
=0&&tri[k].c=0 && tri[k].c<q.size()
)
{[i][j].z=(-ta*p[i][j].x-tb*p[i][j].y-td)/tc;[i][j].b=p[i][j].z;[i][j]=p[i][j].z;[i][j].e=1;
}
}
}
}(maskBlurCount==0)
{("СОКО - расчёт цвета и нормалей");
for(int j=0;j<width;j++)
{(int i=0;i<height;i++)
{(p[i][j].e)
{(i,j);(i,j);
}
}
}
}
{(maskBlurCount);
}=1;=1;("СОКО - наложение текстуры");(texNum,1,0);(maskBlurCount==0)
{(isoHaba,isolist,varIso);();
}("СОКО");1;
}bath::blur(int times)
{(int k=0;k<times;k++)
{(int j=1;j<width-1;j++)
{(int i=1;i<height-1;i++)
{([i-1][j+1].e && p[i ][j+1].e && p[i+1][j+1].e &&[i-1][j ].e && p[i ][j ].e && p[i+1][j ].e &&[i-1][j-1].e && p[i ][j-1].e && p[i+1][j-1].e
)
{[i][j]=(
(0.0625)*p[i-1][j+1].z+(0.125)*[i ][j+1].z+(0.0625)*p[i+1][j+1].z+
(0.125 )*p[i-1][j ].z+(0.25 )*[i ][j ].z+(0.125 )*p[i+1][j ].z+
(0.0625)*p[i-1][j-1].z+(0.125)*[i ][j-1].z+(0.0625)*p[i+1][j-1].z
);
}
{[i][j]=p[i][j].z;
}
}
}(int j=1;j<width-1;j++)
{(int i=1;i<height-1;i++)
{([i-1][j+1].e && p[i ][j+1].e && p[i+1][j+1].e &&[i-1][j ].e && p[i ][j ].e && p[i+1][j ].e &&[i-1][j-1].e && p[i ][j-1].e && p[i+1][j-1].e
)
{[i][j].z=blurBuff[i][j];
(
(0.0625)*blurBuff[i-1][j+1]+(0.125 )*[i ][j+1]+(0.0625)*blurBuff[i+1][j+1]+
(0.125 )*blurBuff[i-1][j ]+(0.25 )*[i ][j ]+(0.125 )*blurBuff[i+1][j ]+
(0.0625)*blurBuff[i-1][j-1]+(0.125 )*[i ][j-1]+(0.0625)*blurBuff[i+1][j-1]
);
}
{[i][j].z=blurBuff[i][j];
}(k==times-1)
{(i,j);(i,j);
}
}("СОКО - размытие "+(FormatFloat(100*(double(k+1)/double(times)),2))+"%");
}("СОКО");
}=1;(texNum,1,0);+=times;(isoHaba,isolist,varIso);();("СОКО");
}bath::deviation()
{;("СОКО - расчёт ошибки");sz=0, srz=0, z;nx,ny;(int i=0;i<q.size();i++)
{=floor((q[i].m.x+cfx/2)/d);=floor((q[i].m.y+cfy/2)/d);(nx>=height-2 || ny>=width-2) continue;(!p[nx][ny].e || !p[nx][ny+1].e ||
!p[nx+1][ny+1].e || !p[nx+1][ny].e) continue;=bilinear(p[nx][ny].z,p[nx][ny+1].z,[nx+1][ny].z,p[nx+1][ny+1].z,p[nx][ny].x,[nx+1][ny].x,p[nx][ny].y,p[nx][ny+1].y,[i].m.x,q[i].m.y);+=fabs(q[i].m.z);+=fabs(z);
}=100*fabs(sz-srz)/srz;
}__fastcall void bath::CountColor(int &i, int &j)
{=p[i][j].z/sclz+min.z+(max.z-min.z)/2;(difference)
{[i*RealWidth+j].r=
*countColor(tmpz,-2,2,0,1,blackAndWhite);[i*RealWidth+j].g=
*countColor(tmpz,-2,2,1,1,blackAndWhite);[i*RealWidth+j].b=
*countColor(tmpz,-2,2,2,1,blackAndWhite);
}
{[i*RealWidth+j].r=
*countColor(tmpz,min.z,max.z,0,0,blackAndWhite);[i*RealWidth+j].g=
*countColor(tmpz,min.z,max.z,1,0,blackAndWhite);[i*RealWidth+j].b=
*countColor(tmpz,min.z,max.z,2,0,blackAndWhite);
}
}bath::ReCountColor()
{("СОКО - расчёт цвета");(int j=1;j<width-1;j++)
{(int i=1;i<height-1;i++)
{(p[i][j].e) CountColor(i,j);
}
}=1;("СОКО - наложение текстуры");
BindTexture(texNum,1,0);("СОКО");
}__fastcall void bath::CountNorm(int &i, int &j)
{(i>0 && j>0)
{([i][j].x, p[i][j].y, p[i][j].z,[i][j-1].x, p[i][j-1].y, p[i][j-1].z,[i-1][j-1].x, p[i-1][j-1].y, p[i-1][j-1].z,[i][j].nx, p[i][j].ny, p[i][j].nz, 0) ;
}
}bath::DefConstr()
{
//rt=1;=1;=1;=0;=1;=1;=0;
//fb=0;=1;=0;=1;=0;
//dif=0;=1;.x=MAX; max.x=MIN; min.y=MAX; max.y=MIN; min.z=MAX; max.z=MIN;=1;=1;=0;=0;=0;=0;=0;=1;=0;=0;=1;
}bath::OneVertex(int &i, int &j)
{
//glColor3d(1,1,1);
//material1.view(1,1,1,0,1,1,1,0,0,0,60);(tex)
{f(((1.*j/width))*wcoeff,((1.*i/height))*hcoeff);
}
{=i*RealWidth+j;_color[0]=imageData[k].r/255.0;_color[1]=im