2016-08-24 8 views
0

OpenSimplexNoiseでランダムな地形を生成したい。私はちょうど結果を取得し、それをウィンドウに描画したいと思っています。OpenSimplexNoiseの結果を取得して取得する

質問:私はOpenSimplexNoiseの正しい出力を得ることができます(多くの方法があり、どれが正しいか分からないため)、そしてこの結果を描画する方法を教えてください。

それは次のようになります。 はenter image description here

public double[][] generateMap(long seed, int width, int height) { 
     double[][] map = new double[width][height]; 

     // start generating things here, just how? 
     OpenSimplexNoise simplex = new OpenSimplexNoise(seed); 

     return map; 
    } 

    public void drawMap(double[][] map, Graphics g) { 
     for(int x = 0; x < map.length; x++) { 
      for(int y = 0; y < map[0].length; y++) { 
       Color color = new Color(); // how to get the color here? 
      } 
     } 
    } 

これは私が持っている現在のコードです。 - 2D、3D & 4Dノイズのために、それぞれに1つの https://gist.github.com/KdotJPG/b1270127455a94ac5d19

答えて

1

のみ3のパブリックメソッドが実際にあります。ここでは

は、それを必要とする人のためOpenSimplexNoiseへのリンクです。 あなたのマップの2次元配列を充填しているので、2Dノイズのevalメソッドは、このような なものを使用します。次のように後で

for(int x=0; x<width; x++){ 
    for(int y=0<y<height; y++){ 
     map[x][y] = simplex.eval(x, y); 
    } 
} 

は、あなたがマップ値から色を生成することができます。

Color color = new Color(map[x][y], ma[x][y], map[x][y]); 

OpenSimplexNoiseTestのサンプルコードも提供しています。彼は3D評価法を使用していますが、常にz座標をゼロにしています。私の推測では、2Dコード&の4D実装を追加する前に、サンプルコードが書かれています。いずれにせよ、それはまだ機能しますが、2Dを直接使用するよりも少し遅いかもしれません。