• 大小: 2.54MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-08
  • 语言: 其他
  • 标签: 随机表面  

资源简介

采用高斯分布函数生成具有随机性的表面,可用于粗糙面、海平面等随机起伏表面的生成。

资源截图

代码片段和文件信息


#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 


using namespace std;
const int NX=200; //x方向
const int NY=200; //y方向
const int NZ=90; //z方向
const double PI=3.1415926;

double z[NX+1][NY+1]h1[NX+1][NY+1]gauss[NX][NY];
int ijkiijjipjpkpnqlxlyMk1k2;
double kk;
double z1z2z3z4maxzminzsumzminhRaRyRzaminmaxmiusigma;
void init();
void surface();
void surface_a();
void outputsurface1();
void outputsurface2();
void output(int m);
double Normal(double xdouble miudouble sigma);
double AverageRandom(double mindouble max);
double gaussrand(double miudouble sigmadouble mindouble max);

int main()
{
using namespace std;
Ra=1; //平均粗糙度
for (i=0;i<=NX;i++)
for (j=0;j<=NY;j++)
{
gauss[i][j]=gaussrand(01-11);
}
surface();
for (i=0;i<=NX;i++)
for (j=0;j<=NY;j++)
{
h1[i][j]=z[i][j];
}
/* surface_a();
for (i=0;i<=NX;i++)
for (j=0;j<=NY;j++)
{
h1[i][j]+=z[i][j];
}*/
outputsurface1();
outputsurface2();
return 0;
}

//==============================================生成表面形貌
void surface()
{
srand(unsigned(time(0)));
maxz=0;
minz=0;
sumz=0;
lx=10; //凸点距离
ly=10;
for (i=0;i<=NX;i+=lx)
for (j=0;j<=NY;j+=ly)
{
z[i][j]=gauss[i][j];
if ((i==0) || (i==NX))
z[i][j]=0;
if (i==0 && j==0)
z[i][j]=0;
if (i==0 && j==NY)
z[i][j]=0;
if (i==NX && j==0)
z[i][j]=0;
if (i==NX && j==NY)
z[i][j]=0;
sumz+=fabs(z[i][j]);
}
sumz/=int(NX/lx)*int(NY/ly);
a=Ra/sumz;
for (i=0;i<=NX;i+=lx)
for (j=0;j<=NY;j+=ly)
{
z[i][j]*=a;
}

/* for (i=0;i  for (j=0;j {
z1=z[i][j]z2=z[i+lx][j]z3=z[i][j+ly]z4=z[i+lx][j+ly];
for (ii=i;ii for (jj=j;jj {
z[ii][jj]=(z1*(i+lx-ii)*(j+ly-jj)+z2*(ii-i)*(j+ly-jj)+z3*(i+lx-ii)*(jj-j)+z4*(ii-i)*(jj-j))/lx/ly;

}
}        */  
for (i=0;i for (j=0;j {
z1=z[i][j]z2=z[i+lx][j]z3=z[i][j+ly];z4=z[i+lx][j+ly];

for (ii=i;ii<=i+lx;ii++)           
for (jj=j;jj<=j+ly;jj++)
{
z[ii][jj]=z1+3*(z2-z1)*(ii-i)*(ii-i)/lx/lx+3*(z3-z1)*(jj-j)*(jj-j)/ly/ly
+9*(z4+z1-z2-z3)*(ii-i)*(ii-i)*(jj-j)*(jj-j)/lx/lx/ly/ly
+2*(z1-z3)*(jj-j)*(jj-j)*(jj-j)/ly/ly/ly+2*(z1-z2)*(ii-i)*(ii-i)*(ii-i)/lx/lx/lx
+6*(z2+z3-z4-z1)*(ii-i)*(ii-i)*(ii-i)*(jj-j)*(jj-j)/lx/lx/lx/ly/ly
+6*(z2+z3-z4-z1)*(ii-i)*(ii-i)*(jj-j)*(jj-j)*(jj-j)/lx/lx/ly/ly/ly
+4*(z4+z1-z2-z3)*(ii-i)*(ii-i)*(ii-i)*(jj-j)*(jj-j)*(jj-j)/lx/lx/lx/ly/ly/ly;
}
}//插值结束
}

/*void surface_a()
{
maxz=0;
minz=0;
sumz=0;
lx=40; //凸点距离
ly=6;
for (i=0;i<=NX;i+=lx)
for (j=0;j<=NY;j+=ly)
{
z[i][j]=gauss[i][j];
if (i==0 && j==0)
z[i][j]=0;
if (i==0 && j==NY)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5960  2014-02-21 15:58  random_surface\Debug\BuildLog.htm

     文件     503808  2014-02-21 15:58  random_surface\Debug\ldf.exe

     文件        406  2014-02-19 17:30  random_surface\Debug\ldf.exe.embed.manifest

     文件        472  2014-02-19 17:30  random_surface\Debug\ldf.exe.embed.manifest.res

     文件        381  2014-02-21 15:58  random_surface\Debug\ldf.exe.intermediate.manifest

     文件     836704  2014-02-21 15:58  random_surface\Debug\ldf.ilk

     文件     482625  2014-02-21 15:58  random_surface\Debug\ldf.obj

     文件    2731008  2014-02-21 15:58  random_surface\Debug\ldf.pdb

     文件         65  2014-02-21 15:58  random_surface\Debug\mt.dep

     文件      82944  2013-11-20 16:14  random_surface\Debug\vc60.idb

     文件     110592  2013-11-20 16:14  random_surface\Debug\vc60.pdb

     文件     191488  2014-02-21 15:58  random_surface\Debug\vc90.idb

     文件     200704  2014-02-21 15:58  random_surface\Debug\vc90.pdb

     文件       6640  2014-02-21 15:58  random_surface\ldf.cpp

     文件       3705  2013-05-16 12:42  random_surface\ldf.dsp

     文件        529  2013-05-16 12:49  random_surface\ldf.dsw

     文件    1993728  2014-02-21 16:10  random_surface\ldf.ncb

     文件      53760  2014-02-19 17:16  random_surface\ldf.opt

     文件       1116  2013-11-20 16:14  random_surface\ldf.plg

     文件        871  2014-02-20 20:19  random_surface\ldf.sln

    ..A..H.     11264  2014-02-21 16:10  random_surface\ldf.suo

     文件       4805  2014-02-19 17:30  random_surface\ldf.vcproj

     文件       1411  2014-02-21 16:10  random_surface\ldf.vcproj.user-PC.user.user

     文件     164039  2014-02-21 15:58  random_surface\surface1.dat

     文件     123842  2014-02-21 15:58  random_surface\surface2.dat

     文件     166271  2013-06-13 18:30  random_surface\surface_100_100_10.dat

     文件     166309  2013-06-13 18:35  random_surface\surface_100_100_5.dat

     文件     247607  2013-06-13 18:59  random_surface\surface_120_120_10.dat

     文件     247504  2013-06-13 19:00  random_surface\surface_120_120_12.dat

     文件     249276  2013-06-13 19:00  random_surface\surface_120_120_15.dat

............此处省略10个文件信息

评论

共有 条评论

相关资源