Piecewise Linear Interpolant to 2D Scattered Data

PWL_INTERP_2D_SCATTERED is a C++ library which produces a piecewise linear interpolant to 2D scattered data, that is, data that is not guaranteed to lie on a regular grid.

This program computes a Delaunay triangulation of the data points, and then constructs an interpolant triangle by triangle. Over a given triangle, the interpolant is the linear function which matches the data already given at the vertices of the triangle.

PWL_INTERP_2D requires the R8LIB library. The test code requires the TEST_INTERP_2D library.


The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.


PWL_INTERP_2D_SCATTERED is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version.

Related Data and Programs:

LAGRANGE_INTERP_2D, a C++ library which defines and evaluates the Lagrange polynomial p(x,y) which interpolates a set of data depending on a 2D argument that was evaluated on a product grid, so that p(x(i),y(j)) = z(i,j).

PWL_INTERP_2D, a C++ library which evaluates a piecewise linear interpolant to data defined on a regular 2D grid.

RBF_INTERP_2D, a C++ library which defines and evaluates radial basis function (RBF) interpolants to scattered 2D data.

SHEPARD_INTERP_2D, a C++ library which defines and evaluates Shepard interpolants to scattered 2D data, based on inverse distance weighting.

TEST_INTERP_2D, a C++ library which defines test problems for interpolation of regular or scattered data z(x,y), depending on a 2D argument.

TRIANGULATION, a C++ library which performs various operations on order 3 (linear) or order 6 (quadratic) triangulations.

TRIANGULATION_ORDER3_CONTOUR, a MATLAB program which makes contour plot of scattered data, or of data defined on an order 3 triangulation.

VANDERMONDE_INTERP_2D, a C++ library which finds a polynomial interpolant to data z(x,y) of a 2D argument by setting up and solving a linear system for the polynomial coefficients, involving the Vandermonde matrix.


  1. William Press, Brian Flannery, Saul Teukolsky, William Vetterling,
    Numerical Recipes in FORTRAN: The Art of Scientific Computing,
    Third Edition,
    Cambridge University Press, 2007,
    ISBN13: 978-0-521-88068-8,
    LC: QA297.N866.

Source Code:

Examples and Tests:

List of Routines:

You can go up one level to the C++ source codes.

Last revised on 24 October 2012.