I\'m trying to come up with a simple and efficient way to create a smooth surface which intersects a number of given \"sample\" points.
For any X,Y point on the surf
A problem when interpolating using the scheme suggested in the question, wherein some subset of nearest neighbors are chosen from a scattered set, is that the result need not be continuous.
Think about it. Suppose I were to move along some smooth, continuous path through the (x,y) plane. As long as the 4 nearest neighbors don't change, the interpolant will be smooth, defined however you chose to do so. However, at some point, that subset of nearest neighbors will suddenly change. At that point, you must have the interpolant consistent across the boundary. Best is to use a triangulation of the independent variable set. This assures a continuous (linear) interpolant within the convex hull of the data. With more work, higher order interpolations can also be achieved with a triangulation.
Radial basis functions are also commonly also be used for interpolation, or Kriging, if you happen to be into geostatistics. Since you were looking into distance based methods, consider radial basis functions. For example, search for "inverse multiquadric interpolation".