Barycentric coordinates (mathematics)


Barycentric coordinates (mathematics)

In mathematics, barycentric coordinates are coordinates defined by the vertices of a simplex (a triangle, tetrahedron, etc). Barycentric coordinates are a form of homogeneous coordinates.

Let "x"1, ..., "x""n" be the vertices of a simplex in a vector space "A". If, for some point "p" in "A",

: (a_1 + cdots + a_n), p = a_1 , x_1 + cdots + a_n , x_n

then we say that the coefficients ("a"1, ..., "a""n") are "barycentric coordinates" of "p" with respect to "x"1, ..., "x""n". The vertices themselves have the coordinates (1, 0, 0, ..., 0), (0, 1, 0, ..., 0), ..., (0, 0, 0, ..., 1). Barycentric coordinates are not unique: for any "b" not equal to zero, ("b a"1, ..., "b a""n") are also barycentric coordinates of "p".

When the coordinates are not negative, the point "p" lies in the convex hull of "x"1, ..., "x""n", that is, in the simplex which has those points as its vertices.

If we imagine masses equal to "a"1, ..., "a""n" attached to the vertices of the simplex, the center of mass (the barycenter) is then "p". This is the origin of the term "barycentric", introduced (1827) by August Ferdinand Möbius.

See also ternary plot.

Barycentric coordinates on triangles

In the context of a triangle, barycentric coordinates are also known as areal coordinates, because the coordinates of "P" with respect to triangle "ABC" are proportional to the (signed) areas of "PBC", "PCA" and "PAB". Areal and trilinear coordinates are used for similar purposes in geometry.

Barycentric or areal coordinates are extremely useful in engineering applications involving triangular subdomains. These make analytic integrals often easier to evaluate, and Gaussian quadrature tables are often presented in terms of area coordinates.

First let us consider a triangle T defined by three vertices extbf{v}_{1},, extbf{v}_{2}, and extbf{v}_{3},. Any point extbf{r} located on this triangle may then be written as a weighted sum of these three vertices, i.e.

: extbf{r} = lambda_{1} extbf{v}_{1} + lambda_{2} extbf{v}_{2} + lambda_{3} extbf{v}_{3},

where lambda_{1},, lambda_{2}, and lambda_{3}, are the area coordinates. These are subjected to the constraint

:lambda_{1} + lambda_{2} + lambda_{3} = 1,

which means that

:lambda_{3} = 1 - lambda_{1} - lambda_{2},

Following this, the integral of a function f( extbf{r}) on T is:int_{T} f( extbf{r}) ds = 2A int_{0}^{1} int_{0}^{1 - lambda_{2 f(lambda_{1} extbf{v}_{1} + lambda_{2} extbf{v}_{2} +(1 - lambda_{1} - lambda_{2}) extbf{v}_{3}) dlambda_{1} dlambda_{2},

Note that the above has the form of a linear interpolation. Indeed, area coordinates will also allow us to perform a linear interpolation at all points in the triangle if the values of the function are known at the vertices.

Converting to barycentric coordinates

Given a point extbf{r}, inside a triangle it is also desirable to obtain the area coordinates lambda_{1},, lambda_{2}, and lambda_{3}, at this point. We can write the barycentric expansion of vector extbf{r} having Cartesian coordinates (x, y), in terms of the components of the triangle vertices ( extbf{r}_1, extbf{r}_2, extbf{r}_3) as

:egin{matrix}x = lambda_{1} x_{1} + lambda_{2} x_{2} + lambda_{3} x_{3} \y = lambda_{1} y_{1} + lambda_{2} y_{2} + lambda_{3} y_{3} \end{matrix},

substituting lambda_{3} = 1 - lambda_{1} - lambda_{2}, into the above gives

:egin{matrix}x = lambda_{1} x_{1} + lambda_{2} x_{2} + (1 - lambda_{1} - lambda_{2}) x_{3} \y = lambda_{1} y_{1} + lambda_{2} y_{2} + (1 - lambda_{1} - lambda_{2}) y_{3} \end{matrix},

Rearranging, this is

:egin{matrix}lambda_{1}(x_{1} - x_{3}) + lambda_{2}(x_{2} - x_{3}) + x_{3} - x = 0 \lambda_{1}(y_{1} - y_{3}) + lambda_{2}(y_{2} - y_{3}) + y_{3} - y = 0 \end{matrix},

This linear transformation may be written more succinctly as

: extbf{T} cdot lambda = extbf{r}- extbf{r}_3,

Where lambda is the vector of area coordinates, extbf{r} is the vector of Cartesian coordinates, and extbf{T} is a matrix given by

: extbf{T} = left(egin{matrix}x_1-x_3 & x_2-x_3 \y_1-y_3 & y_2-y_3 \end{matrix} ight)

Now the matrix extbf{T} is invertible, since extbf{r}_1, extbf{r}_2, and extbf{r}_3 are linearly independent (if this was not the case, they would be colinear and would not form a triangle). Thus, we can rearrange the above equation to get

:left(egin{matrix}lambda_1 \ lambda_2end{matrix} ight) = extbf{T}^{-1} ( extbf{r}- extbf{r}_3 ),

Finding the barycentric coordinates has thus been reduced to finding the inverse matrix of extbf{T}, a trivial problem in the case of 2×2 matrices.

Determining if a point is inside a triangle

Since barycentric coordinates are a linear transformation of Cartesian coordinates, it follows that they vary linearly along the edges and over the area of the triangle. If a point lies in the interior of the triangle, all of the Barycentric coordinates lie in the open interval (0,1). If a point lies on an "edge" of the triangle, at least one of the area coordinates lambda_{1...3} is zero, while the rest lie in the closed interval [0,1] .

Summarizing,:Point extbf{r} lies inside the triangle iff 0 < lambda_i < 1 ;forall; i ext{ in } 1,2,3.:Otherwise, extbf{r} lies on the edge or corner of the triangle if 0 leq lambda_i leq 1 ;forall; i ext{ in } 1,2,3.:Otherwise, extbf{r} lies outside the triangle.

Interpolation on a triangular unstructured grid

Barycentric coordinates provide a convenient way to interpolate a function on an unstructured grid or mesh, as long as the function's value is known at all vertices of the mesh.

To interpolate a function f at a point extbf{r}, we go through each triangular element and transform extbf{r} into the barycentric coordinates of that triangle. If 0 leq lambda_i leq 1 ;forall; i ext{ in } 1,2,3, then the point lies in the triangle or on its edge (explained in the previous section). Now, we interpolate the value of f( extbf{r}) as

:f( extbf{r}) = lambda_1 f( extbf{r}_1) + lambda_2 f( extbf{r}_2) + lambda_3 f( extbf{r}_3)

This linear interpolation is automatically normalized since lambda_1+lambda_2+lambda_3=1.

Barycentric coordinates on tetrahedra

Barycentric coordinates may be easily extended to three dimensions. The 3D simplex is a tetrahedron, a polyhedron having four triangular faces and four vertices. Once again, the barycentric coordinates are defined so that the first vertex extbf{r}_1 maps to barycentric coordinates lambda = (1,0,0,0), extbf{r}_2 o (0,1,0,0), etc.

This is again a linear transformation, and we may extend the above procedure for triangles to find the barycentric coordinates of a point extbf{r} with respect to a tetrahedron:

:left(egin{matrix}lambda_1 \ lambda_2 \ lambda_3end{matrix} ight) = extbf{T}^{-1} ( extbf{r}- extbf{r}_4 ),

where mathbf{T} is now a 3×3 matrix:

: extbf{T} = left(egin{matrix}x_1-x_4 & x_2-x_4 & x_3-x_4\y_1-y_4 & y_2-y_4 & y_3-y_4\z_1-z_4 & z_2-z_4 & z_3-z_4end{matrix} ight)

Once again, the problem of finding the barycentric coordinates has been reduced to inverting a 3×3 matrix. 3D barycentric coordinates may be used to decide if a point lies inside a tetrahedral volume, and to interpolate a function within a tetrahedral mesh, in an analogous manner to the 2D procedure. Tetrahedral meshes are often used in finite element analysis because the use of barycentric coordinates can greatly simplify 3D interpolation.

References

*
*
*

External links

* [http://www.cut-the-knot.org/triangle/glasses.shtml Barycentric coordinates: A Curious Application] "(solving the "three glasses" problem)" at cut-the-knot
* [http://www.math.fau.edu/yiu/barycentricpaper.pdf The uses of homogeneous barycentric coordinates in plane euclidean geometry]


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Barycentric — can refer to:In astronomy, * Barycentric coordinates (astronomy) are coordinates defined by the common center of mass of two or more bodies * Barycentric Dynamical Time was a time standard in the Solar system * Barycentric Coordinate Time is a… …   Wikipedia

  • List of mathematics articles (B) — NOTOC B B spline B* algebra B* search algorithm B,C,K,W system BA model Ba space Babuška Lax Milgram theorem Baby Monster group Baby step giant step Babylonian mathematics Babylonian numerals Bach tensor Bach s algorithm Bachmann–Howard ordinal… …   Wikipedia

  • Homogeneous coordinates — In mathematics, homogeneous coordinates, introduced by August Ferdinand Möbius in his 1827 work Der barycentrische Calcul [ [http://www history.mcs.st andrews.ac.uk/Biographies/Mobius.html Mobius biography ] ] , allow affine transformations to be …   Wikipedia

  • Coordinate system — For geographical coordinates on Wikipedia, see Wikipedia:WikiProject Geographical coordinates. In geometry, a coordinate system is a system which uses one or more numbers, or coordinates, to uniquely determine the position of a point or other… …   Wikipedia

  • List of triangle topics — This list of triangle topics includes things related to the geometric shape, either abstractly, as in idealizations studied by geometers, or in triangular arrays such as Pascal s triangle or triangular matrices, or concretely in physical space.… …   Wikipedia

  • Polygon (computer graphics) — Polygons are used in computer graphics to compose images that are three dimensional in appearance. Usually (but not always) triangular, polygons arise when an object s surface is modeled, vertices are selected, and the object is rendered in a… …   Wikipedia

  • Vector space — This article is about linear (vector) spaces. For the structure in incidence geometry, see Linear space (geometry). Vector addition and scalar multiplication: a vector v (blue) is added to another vector w (red, upper illustration). Below, w is… …   Wikipedia

  • Circumscribed circle — Circumscribed circle, C, and circumcenter, O, of a cyclic polygon, P In geometry, the circumscribed circle or circumcircle of a polygon is a circle which passes through all the vertices of the polygon. The center of this circle is called the… …   Wikipedia

  • Neil J. Gunther — Neil James Gunther Neil Gunther at Bletchley Park 2002 A quantum leap is neither Born …   Wikipedia

  • Simplex — For other uses, see Simplex (disambiguation). A regular 3 simplex or tetrahedron In geometry, a simplex (plural simplexes or simplices) is a generalization of the notion of a triangle or tetrahedron to arbitrary dimension. Specifically, an n… …   Wikipedia