Simple way to interpolate between points in 3D space to form a smooth surface

前端 未结 6 1565
礼貌的吻别
礼貌的吻别 2020-12-15 09:38

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

6条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-15 10:05

    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".

提交回复
热议问题