// ■地形生成(より単純なアルゴリズム) // 左クリックのたびに地形を生成します。 #include "myWin.h" #include "math.h" #include "stdlib.h" #include "time.h" #define MX 512 #define frand() ((double) rand()/(double)(RAND_MAX+1)) static HDC hBuff; static HBITMAP hBM; double map[MX+1][MX+1]; void setMap(int L, int U, int W, double dH){ if(W<2)return; int WW = W / 2; map[L+WW][U+WW] = (map[L][U]+map[L+W][U]+map[L][U+W]+map[L+W][U+WW])*0.25 +dH*(frand()-0.5); setMap(L ,U ,WW,dH); setMap(L+WW,U ,WW,dH); setMap(L ,U+WW,WW,dH); setMap(L+WW,U+WW,WW,dH); } void addFunc(){ for(int i=0;iR) R=map[i][j]; return R; } void draw(){ double V1=minZ(), V2=maxZ(); if(abs(V2-V1)<0.000001) V2=V1+1; double DD=(V2-V1)/768;int C; for(int i=1;i