title: Java Perlin Noise for 2D terrain generation
body: <p>UPDATE: Formal List of questions:</p>
  
  <ol>
  <li><b>What do the float values (both input parameters, and the output) of a 2D noise implementation represent?</b> - Partially answered, the inputs are the coordinates. How about the ouput? Also, can I use my integer as a float for the coords? 1.0, 122.0, etc.?</li>
  <li><b>What's a good way to implement a seed in a 2D noise generator?</b> Should I just make it a 3D noise generator using the 3rd param as a seed? Would that imply each seed can generate unique 2D noise?</li>
  <li>Going along with the 2d map, generating bitmaps seems to be along the same lines. <b>How could I generate a bitmap from the output?</b> Presumably floats.</li>
  </ol>
  
  <p>My questions are what do the float values (both input parameters, and output) of a cut and paste perlin noise 2D implementation represent? How could I generate a bitmap from them? If I can get a 2d array of some data type, I'm sure I could figure out how to use it to simulate my terrain.</p>
  
  <p>And, I would use a cut and paste implementation, if I could ensure that I could seed the values for them. That's the other part of the question, it is an unanswered one I found <a href="https://stackoverflow.com/questions/7213469/best-way-to-add-seed-to-perlin-noise">here</a>. - what's a good way to implement a seed in a noise generator?</p>
  
  <p>Ok, I understand that this question has been asked many many times, so let me explain what I have researched and found.</p>
  
  <p>First, I found <a href="http://freespace.virgin.net/hugo.elias/models/m_perlin.htm" rel="nofollow noreferrer">this</a> site here, which seemed to be a winner for explaining it to me. However, I then came up with another question which I found asked but not really answered completely <a href="https://stackoverflow.com/questions/7213469/best-way-to-add-seed-to-perlin-noise">here</a>.</p>
  
  <p>I then tried to get my hands dirty and code some in Java, which is my language of choice. I found <a href="https://stackoverflow.com/questions/7746743/parametric-random-function-for-2d-noise-generation">this</a>, which had me trying out the hash function given as an answer as my noise function, because I could use a seed there. Then I ran into a problem of it not returning a float to follow the rest of the processes in the tutorial. Back to the drawing board. Along the way, I found many many more sites with questions about perlin noise.</p>
  
  <p>I found an unanswered question here that I hadn't even thought of yet because I haven't gotten my implementation to work. I can't find the link anymore but it said something along the lines of, even if you had a copy and pasted implementation what are the float inputs you put into the function? I was told I needed to pass INTEGERS that are my x and y on the map. I get float outputs from the cut and paste implementations as well. What do THOSE mean? How are those 2D? If I could keep things as integers it would make sense in my brain but in a way, I see that keeping them as integers would not be plausible for interpolating and smoothing the values for a continuous curve.</p>