# Chapter 50
Interpolation

Julia Flötotto

Scattered data interpolation solves the following problem: given measures of a function on a set of discrete data points, the task is to interpolate this function on an arbitrary query point.

If the function is a linear function and given barycentric coordinates that allow to express the query point as the convex combination of some data points, the function can be exactly interpolated. If the function gradients are known, we can exactly interpolate quadratic functions given barycentric coordinates. Any further properties of these interpolation functions dependent on the properties of the barycentric coordinates. They are provided in this package under the name linear_interpolation and quadratic_interpolation.

#### Natural neighbor interpolation

Natural neighbor coordinates are defined by Sibson in 1980 and are based on the Voronoi diagram of the data points. Interpolation methods based on natural neighbor coordinates are particularly interesting because they adapt easily to non-uniform and highly anisotropic data. This package contains Sibson's C1 continuous interpolation method which interpolates exactly spherical quadrics (of the form (x) =a + bt x + xtx) and Farin's C1 continuous interpolation method based on Bernstein-Bézier techniques and interpolating exactly quadratic functions - assuming that the function gradient is known. In addition, Sibson defines a method to approximate the function gradients for data points that are in the interior of the convex hull. This method is exact for spherical quadrics.

This CGAL package implements Sibson's and Farin's interpolation functions as well as Sibson's function gradient fitting method. Furthermore, it provides functions to compute the natural neighbor coordinates with respect to a two-dimensional Voronoi diagram (i. e. from the Delaunay triangulation of the data points) and to a two-dimensional power diagram for weighted points (i. e. from their regular triangulation). Natural neighbor coordinates on closed and well-sampled surfaces can also be computed if the normal to the surface at the query point is known. The latter coordinates are only approximately barycentric, see [BF02].

For a more thorough introduction see the user manual.

### Concepts

InterpolationTraits
GradientFittingTraits

### Interpolation Functions

CGAL::linear_interpolation
CGAL::sibson_c1_interpolation
CGAL::farin_c1_interpolation
CGAL::quadratic_interpolation
CGAL::sibson_gradient_fitting

CGAL::Interpolation_traits_2<K>
CGAL::Interpolation_gradient_fitting_traits_2<K>

### Natural neighbor coordinate computation

CGAL::natural_neighbor_coordinates_2
CGAL::regular_neighbor_coordinates_2

### Surface neighbor and surface neighbor coordinate computation

CGAL::Voronoi_intersection_2_traits_3<K>
CGAL::surface_neighbor_coordinates_3
CGAL::surface_neighbors_3

### Alphabetical Listing of Reference Pages

- linear_interpolation

- sibson_c1_interpolation

- farin_c1_interpolation

- quadratic_interpolation

- Data_access<Map>

- InterpolationTraits

- Interpolation_traits_2<K>

- natural_neighbor_coordinates_2

- regular_neighbor_coordinates_2

- sibson_gradient_fitting

- GradientFittingTraits

- Interpolation_gradient_fitting_traits_2<K>

- Voronoi_intersection_2_traits_3<K>

- surface_neighbor_coordinates_3

- surface_neighbors_3