つよくなりたいなあ

地に足をつけず世界を生きぬくブログです

noiseでランドスケープ

今日も元気にProcessing.

/*
 * Noise Landscape
 * 2018/01/04
 */


float[][]land = new float[200][200];
float roty = 0.1;//for rotating the scene

void setup() {
  size(600, 600, P3D);
  noiseSeed(1);
}

void draw() {
  background(250);
  rotateX(-0.5);
  rotateY(roty);
  landscape();
  roty -= 0.01;
}

float z = 1.0;

void landscape() {
  translate(150, 0, -150);
  float z = 0.0;
  float w = 20;
  float h = 20;
  float elevation = 500;
  float ampl = 6.57; //for noise function
  for (int i = 0; i < 200; i++) {
    for (int j = 0; j < 200; j++) {
      land[i][j] = noise(float(i)/ampl * 2, float(j)/ampl, z)*elevation;
    }
  }
  for (int x = 0; x < 199; x++) {
    for (int y = 0; y < 199; y++) {
      beginShape(QUADS);
      stroke(1);
      if (land[x][y] < 185) {
        fill(250 - 0.25 * land[x][y], 100);
      } else {
        fill(10, 200 - 0.3 * land[x][y]);
      }
      vertex(x * w - 500, land[x][y], y * h - 500);
      vertex((x+1) * w - 500, land[x+1][y], y * h - 500);
      vertex((x+1) * w - 500, land[x+1][y+1], (y+1) * h - 500);
      vertex(x * w - 500, land[x][y+1], (y+1) * h - 500);
      endShape();
    }
  }
}