資源簡(jiǎn)介
采用高斯分布函數(shù)生成具有隨機(jī)性的表面,可用于粗糙面、海平面等隨機(jī)起伏表面的生成。

代碼片段和文件信息
#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; //凸點(diǎn)距離
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;
}
}//插值結(jié)束
}
/*void?surface_a()
{
maxz=0;
minz=0;
sumz=0;
lx=40; //凸點(diǎn)距離
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)
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件???????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.em
?????文件????????472??2014-02-19?17:30??random_surface\Debug\ldf.exe.em
?????文件????????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個(gè)文件信息
評(píng)論
共有 條評(píng)論