📄 maxprojection.c
字号:
/***************************************************************************/
/* */
/* 嶰師尦夋憸僨乕僞偺2師尦暯柺傊偺嵟戝抣搳塭傪媮傔傞 */
/* MaxProjection.c */
/* 2001/ 9/21 */
/***************************************************************************/
#include "Reconst.h"
#include "GuoShuqiang.h"
double MaxProjection(int nx,int ny,int nz,char *select, double *a, char *fname)
/* 堷悢丗
/* int nx,ny,nz丗嶰師尦夋憸偺悺朄
/* char *select丗抐柺傪巜掕偡傞丂xy,xz,yz偺3庬椶
/* double a[] 丗(ix,iy,iz)偼a[ny*nz*ix+nz*iy+iz]偱傾僋僙僗
/* char *fname 丗彂偒崬傒僼傽僀儖柤傪巜掕
/************************************************************/
{
int i,i1,i2,i3, i1b,i2b,
w1,w2,w3, n1,n2,n3,nw;
double max=0.0,amax=0.0, *prj;
char fname0[STRLEN+10];
int GsqCount;
if(select=="xy"){
w1=ny*nz; w2=nz; w3=1;
n1=nx; n2=ny; n3=nz;
}
if(select=="xz"){
w1=ny*nz; w2=1; w3=nz;
n1=nx; n2=nz; n3=ny;
}
if(select=="yz"){
w1=nz; w2=1; w3=ny*nz;
n1=ny; n2=nz; n3=nx;
}
for(i=0;i<nx*ny*nz;i++){
if(max<a[i])max=a[i];
}
/**************妔****************/
if(select=="xy")
{
GsqDataCount=nx*ny;
}
else if(select=="xz")
{
GsqDataCount=nx*nz;
}
else
{
GsqDataCount=ny*nz;
}
GsqRowCount=n2;
FlatData = (double *)malloc(GsqDataCount*sizeof(double));
/**************妔****************/
nw=n2;
if(n2>255) nw=255;
prj=alloc_d(n2);
strcpy(fname0,fname);
strcat(fname0, "_");
strcat(fname0,select);
CsvFileOpen(fname0);
for(i1=0;i1<n1;i1++){
i1b=i1*w1;
for(i2=0;i2<n2;i2++){
i2b=i2*w2;
amax=0.0;
for(i3=0;i3<n3;i3++){
i=i1b+i2b+w3*i3;
if(amax < a[i]/max) amax=a[i]/max;
}
prj[i2]=amax;
}
CsvFileWrite(nw,prj,fname0);
/**************妔****************/
for(GsqCount=0;GsqCount<GsqRowCount;GsqCount++)
{
*(FlatData+i1*GsqRowCount+GsqCount)=prj[GsqCount];
}
/**************妔****************/
}
//TwoDimensionArrayAllOutput(64,256,FlatData);
//OneDimensionArrayOutput(FlatData,GsqDataCount);
return amax;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -