/*---------------------------------------------------------------------------*/ #include #include #include #include #define NDMAX 1000 void main_part(char fnameR[],char fnameW[]); void TeX_DRN_XJIKU(FILE *fout,double xmin,double xmax,double dx, double kxi,double kxf,double kyi,double kyf); void TeX_DRL_XJIKU(FILE *fout,double xmin,double xmax, double kxi,double kxf,double kyi,double kyf); void TeX_DRH_YJIKU(FILE *fout,double ymin,double ymax, double kxi,double kxf,double kyi,double kyf); double TODA(double rx); void KAIKI(int nd,double datax[NDMAX],double datay[NDMAX], double *aa,double *bb,double *rr); /*---------------------------------------------------------------------------------*/ int main(int argc,char *argv[]) { char fnameR[50]; /*入力ファイル名*/ char fnameW[50]; /*出力ファイル名*/ strcpy(fnameR,argv[1]); strcpy(fnameW,argv[2]); main_part(fnameR,fnameW); printf("リターンキーを押してください"); getchar(); return 0; } /*---------------------------------------------------------------------------------*/ void main_part(char fnameR[],char fnameW[]) { /*作図用変数*/ double HSIZE;/*画像横寸法(mm)*/ double DHL;/*画像左余白寸法:縦軸描画用(mm)*/ double DHR;/*画像右余白寸法(mm)*/ double VSIZE;/*画像縦寸法(mm)*/ double DVL;/*画像下余白寸法:横軸描画用(mm)*/ double DVU;/*画像上余白寸法(mm)*/ char sxjiku[50]="";/*x軸名(単位含む)*/ double xmin;/*x軸最小値*/ double xmax;/*x軸最大値*/ double dx;/*x軸増分*/ char slogx[2]="";/*x軸の種類(L:対数,N:普通)*/ char syjiku[50]="";/*y軸名*/ double ymin;/*y軸最小値*/ double ymax;/*y軸最大値*/ double xx,yy,kxx,kyy,kxx1,kyy1,kxx2,kyy2,dd; double kxi,kxf,kyi,kyf; int nd;/*データ数−1*/ double alpha=0.5;/*Hazen公式*/ double aa,bb,rr;/*回帰係数および相関係数*/ /*プロットデータ格納配列宣言*/ double datax[NDMAX]; double datay[NDMAX]; int i,j,k; double work; char strs[50]; /*入出力用変数宣言*/ FILE *fin,*fout; char dat[256]; char sv[10]; /*データ読み込み*/ fin=fopen(fnameR,"r"); fgets(dat,sizeof dat,fin); fgets(dat,sizeof dat,fin); strcpy(sxjiku,strtok(dat,",")); fgets(dat,sizeof dat,fin); HSIZE=atof(strtok(dat,",")); DHL =atof(strtok(NULL,",")); DHR =atof(strtok(NULL,",")); fgets(dat,sizeof dat,fin); VSIZE=atof(strtok(dat,",")); DVL =atof(strtok(NULL,",")); DVU =atof(strtok(NULL,",")); fgets(dat,sizeof dat,fin); xmin=atof(strtok(dat,",")); xmax=atof(strtok(NULL,",")); dx =atof(strtok(NULL,",")); strcpy(slogx,strtok(NULL,",")); fgets(dat,sizeof dat,fin); nd=atof(strtok(dat,","))-1; for(i=0;i<=nd;i++){ fgets(dat,sizeof dat,fin); datax[i]=atof(strtok(dat,",")); } fclose(fin); /*プロット領域定義*/ kxi=DHL; kxf=HSIZE-DHR; kyi=DVL; kyf=VSIZE-DVU; /*ソート(大きい順)*/ for(i=0;i<=nd;i++){ for(j=i+1;j<=nd;j++){ if(datax[i]=ymax){ yy=ymax;xx=(yy-bb)/aa; } kxx1=kxi+(xx-xmin)*(kxf-kxi)/(xmax-xmin); kyy1=kyi+(yy-ymin)*(kyf-kyi)/(ymax-ymin); xx=xmax;yy=aa*xx+bb; if(yy