Mean Value B´ezier Surfaces Torsten Langer and Hans-Peter Seidel MPI Informatik Stuhlsatzenhausweg 85, 66123 Saarbru¨ cken, Germany {langer,hpseidel}@mpi-inf.mpg.de http://www.mpi-inf.mpg.de
Abstract. B´ezier surfaces are an important design tool in Computer Aided Design. They are parameterized surfaces where the parameterization can be represented as a homogeneous polynomial in barycentric coordinates. Usually, Wachspress coordinates are used to obtain tensor product B´ezier surfaces over rectangular domains. Recently, Floater introduced mean value coordinates as an alternative to Wachspress coordinates. When used to construct B´ezier patches, they offer additional control points without raising the polynomial degree. We investigate the potential of mean value coordinates to design mean value B´ezier surfaces. Key words: B´ezier surface, mean value coordinates
1 Introduction B´ezier surfaces are based on the works of B´ezier, de Casteljau, and Forrest [1–3] and remain an important tool in Computer Aided Design until today. The most common representations of B´ezier surfaces are simplicial B´ezier surfaces X P(λ) = bα Bnα (λ) (1) |α|=n
and tensor product B´ezier surfaces P(x) =
n X
bi j Bni (x)Bnj (y)
(2)
i, j=0
where λ B λ(x) are the barycentric coordinates of x B (x, y) with respect to a domain triangle while (2) is defined over the domain [0, 1]2 , n is the polynomial degree, bα and bi j are the control points, and Bnα and Bni are the Bernstein polynomials defined by ! n n! α n n (1 − x)n−i xi (3) Bi (x) = Bα (λ) = λ , i α! P where we use the multi-index notation α B (α1 , α2 , α3 ) ∈ 3 with |α| B i αi , α! B α Πi αi !, and λα B Πi λi i . The representations (1) and (2) are even closer related to each other than it may appear at a first glance. If we set W W W λW 1 (x) B (1 − x)(1 − y) , λ2 (x) B x(1 − y) , λ3 (x) B xy , λ4 (x) B (1 − x)y , (4)
2
Torsten Langer and Hans-Peter Seidel
we can express tensor product B´ezier surfaces in the form of (1) as has been noted in [4]. Using multi-indices α B (α1 , α2 , α3 , α4 ) ∈ 4 , we obtain P(x) =
n X
bi j Bni (x)Bnj (y) =
n X
bi j
i, j=0
=
i, j=0
n X
bi j
i, j=0
! ! n n (1 − x)n−i xi (1 − y)n− j y j i j
X X n! λW (x)α = bα2 +α3 ,α3 +α4 Bnα (λW (x)) . α! α +α =i |α|=n
(5) (6)
2 3 α3 +α4 = j
|α|=n
Here, the equality of (5) and (6) is due to the fact that Bni (x)Bnj (y) and Bnα (λW (x)) form both a partition of unity. Therefore, the equality can be deduced by comparing the coefficients of ! ! n X n! X n n (1 − x)n−i xi (1 − y)n− j y j = (7) λW (x)α j i α! i, j=0 |α|=n n X X n! ! (1 − x)n−i xi (1 − y)n− j y j . (8) = α! i, j=0 α +α =i 2
3
α3 +α4 = j |α|=n
The coordinate functions λW i are known as Wachspress coordinates [5]. They can be defined not only for the unit square but within all convex polygons. They are also known as generalized barycentric coordinates because they satisfy the following properties for a point x inside a polygon which is given by boundary vertices vi ∀i λi (x) > 0 X λi (x) = 1
positivity,
(9)
partition of unity,
(10)
linear precision,
(11)
i
X
λi (x)vi = x
i
and these properties uniquely determine the classical barycentric coordinates with respect to a triangle. Recently, Floater suggested a different set of coordinate functions, which he called mean value coordinates [6]. We denote these coordinates by λi . Using the notation from Fig. 1, they are defined by wi , λi = P j wj
wi =
γi tan γi−1 2 + tan 2 kx − vi k
(12)
in the interior of a convex polygon, and they have a continuous extension to the boundary [7]. We list some of their properties. Proposition 1.1 (Hormann & Floater [7]). Mean value coordinates λi have the following properties:
Mean Value B´ezier Surfaces
1. 2. 3. 4. 5.
3
Positivity inside the polygon (9), partition of unity (10), and linear precision (11). Lagrange property: λi (v j ) = δi j . Smoothness: λi is C ∞ everywhere except at the vertices v j , where it is only C 0 . Linear independence: The functions (λi (x))4i=1 are linearly independent. Edge property: λi is linear along the edges of the unit square.
Proposition 1.2. The four mean value coordinate functions with respect to the unit square [0, 1]2 are symmetric to themselves and to each other: λ1 (x, y) = λ1 (y, x) ,
λ3 (x, y) = λ3 (y, x) ,
λ2 (x, y) = λ2 (1 − y, 1 − x) , λ4 (x, y) = λ4 (1 − y, 1 − x) , λ1 (x, y) = λ2 (1 − x, y) = λ3 (1 − x, 1 − y) = λ4 (x, 1 − y) .
v4
(13) (14) (15)
v3 γ4
v1
γ3
γ2 x γ1 v2
Fig. 1. Notation for the definition of mean value coordinates.
Although mean value coordinates are only C 0 at the vertices, we can define partial derivatives by taking the limit over difference quotients within the square. This ∂ ∂ ∂ ∂ ∂ yields by 1.1.5 ∂x λ1 (0, 0) = ∂x λ1 (1, 0) = ∂y λ1 (0, 0) = ∂y λ1 (0, 1) = −1, ∂x λ1 (0, 1) = ∂ ∂ ∂ ∂x λ1 (1, 1) = ∂y λ1 (1, 0) = ∂y λ1 (1, 1) = 0, and respectively for the other coordinate ∂ functions. But note that limy→0,y>0 ∂x λ1 (0, y) , −1 and similar for the other λi . Our numerical experiments gave a limit value of approximately −0.7. Nevertheless, this is sufficient for our purposes, and, by taking appropriate combinations of the λi , we can achieve higher continuity . The advantage of mean value coordinates is that their Bernstein polynomials Bnα (λ) are in general different for different αs while the Bernstein polynomials Bnα (λW ) and Bnα0 (λW ) coincide if α2 +α3 = α02 +α03 and α3 +α4 = α03 +α04 . This means that it is possible to define a different kind of B´ezier patches by using the mean value coordinates of the unit square in (1) as suggested in [6, 8]. Moreover, these mean value B´ezier patches have a greater number of control points than traditional B´ezier patches with the same polynomial degree. In the following section, we will investigate the properties of mean value B´ezier surfaces.
2 Mean Value B´ezier Surfaces Many of the properties of (triangular) B´ezier surfaces can be proven by formal manipulations of the barycentric coordinates λi . Therefore, the respective proofs carry directly
4
Torsten Langer and Hans-Peter Seidel
over to the case of mean value B´ezier surfaces. In the following theorem, we summarize some of these results. Proposition 2.1. Let λi be the mean value coordinates, and let the Bernstein polynomials Bnα and a B´ezier patch P be defined as in (3) and (1). Then the following properties hold: P k 1. Bnα (λ) = 4i=1 λi Bn−1 α−ei (λ) (with Bβ (λ) B 0 if one of the βi < 0), n 2. {Bα } forms a positive partition of unity inside the unit square, 3. the boundary curves P(λ(0, y)), P(λ(1, y)), P(λ(x, 0)), and P(λ(x, 1)) are B´ezier curves with control points (bie4 +(n−i)e1 )ni=0 , (bie3 +(n−i)e2 )ni=0 , (bie2 +(n−i)e1 )ni=0 , and (bie3 +(n−i)e4 )ni=0 , 4. the image of [0, 1]2 under P(λ(x)) is contained in the convex hull of the bα , P 5. the de Casteljau algorithm works: let P(λ) = |α|=n bα Bnα (λ) be a mean value B´ezier patch with coefficients bα . For k ∈ and a given β with |β| = n − k, let bkβ (λ) B P k n 0 |α|=k bβ+α Bα (λ). Then P(λ) = b0 (λ) can be computed from the bβ (λ) = bβ via the P4 k k−1 recursive relation bβ (λ) = i=1 λi bβ+ei (λ). (ei denotes the multi-index with components (ei ) j = δi j , and 0 denotes the multi-index with components 0 j = 0.) Next we give the derivatives of the Bernstein polynomials in λ. Lemma 2.2. Let Bnα (λ) Then
n! α λ α! = 0
if all αi ≥ 0, otherwise.
∂|β| n n! ∂|β| n−|β| Bα−β (λ) . Bα (λ) B β β β β Bnα (λ) = β 4 3 2 1 ∂λ (n − |β|)! ∂λ1 ∂λ2 ∂λ3 ∂λ4
(16)
(17)
The computation of derivatives of mean value B´ezier patches with respect to x and y, which is important to join several B´ezier patches smoothly, is more challenging because these derivatives can not be expressed as a linear combination of Bernstein polynomials as it is the case with tensor product B´ezier surfaces. Application of the chain rule yields: Lemma 2.3. Let P(λ) =
X
bα Bnα (λ) ,
(18)
|α|=n
and define recursively ∆0,0 bα (x) B bα , 4 X ∂ ∆r+1,s bα (x) B λi (x)∆r,s bα+ei (x) , ∂x i=1
(19) 4 X ∂ ∆r,s+1 bα (x) B λi (x)∆r,s bα+ei (x) . ∂y i=1
(20)
Mean Value B´ezier Surfaces
5
Then the first derivatives of P are given by X X ∂ ∂ P(λ(x)) = n ∆1,0 bα (x)Bn−1 (λ(x)) , P(λ(x)) = n ∆0,1 bα (x)Bn−1 α α (λ(x)) . ∂x ∂y |α|=n−1 |α|=n−1 (21) The second derivatives of P are given by X X ∂ ∂2 n−1 ∆ b (x) · B (λ(x)) + n(n − 1) ∆2,0 bα (x)Bn−2 P(λ(x)) = n 1,0 α α α (λ(x)) , ∂x ∂x2 |α|=n−2 |α|=n−1 (22) X X ∂ ∂ ∆0,2 bα (x)Bn−2 ∆0,1 bα (x) · Bn−1 P(λ(x)) = n α (λ(x)) , α (λ(x)) + n(n − 1) 2 ∂y ∂y |α|=n−2 |α|=n−1 2
(23) X X ∂ ∂ P(λ(x)) = n ∆1,0 bα (x) · Bn−1 ∆1,1 bα (x)Bn−2 α (λ(x)) + n(n − 1) α (λ(x)) . ∂x∂y ∂y |α|=n−1 |α|=n−2 2
(24) We can now give continuity conditions for connecting mean value B´ezier patches. Theorem 2.4 (C 0 -continuity). Let X P(λ) = bα Bnα (λ) ,
P0 (λ0 ) =
|α|=n
X
b0α Bnα (λ0 )
(25)
|α|=n
where λ(x) is defined with respect to the square [0, 1]2 , and λ0 (x) is defined with respect to the square [1, 2] × [0, 1]. These patches form a continuous surface iff the control points at the connecting line coincide, that is b(n−i)e2 +ie3 = b0(n−i)e1 +ie4
∀i = 0 . . . n .
(26)
Respective conditions hold to join patches along the other domain boundary edges. Proof. This is an immediate consequence of Prop. 2.1.3.
t u
To compare higher order derivatives, we need to know more about the partial derivatives of the mean value coordinates. Instead of trying to give an explicit expression for them, we use the following lemma. Lemma 2.5. Let λ1 , . . . λ4 be the mean value coordinates of the unit square. Then ∂ ∂ ∂ ∂ λ1 (x) + λ2 (x) = λ3 (x) + λ4 (x) = 0 ∂x ∂x ∂x ! ∂x ∂ ∂ ∂ ∂ − λ1 (x) + λ2 (x) = λ3 (x) + λ4 (x) = 1 ∂y ∂y ∂y ∂y ! ∂ ∂ ∂ ∂ λ1 (x) + λ4 (x) = λ2 (x) + λ3 (x) = 1 − ∂x ∂x ∂x ∂x ∂ ∂ ∂ ∂ λ1 (x) + λ4 (x) = λ2 (x) + λ3 (x) = 0 ∂y ∂y ∂y ∂y
,
(27)
,
(28)
,
(29)
.
(30)
6
Torsten Langer and Hans-Peter Seidel
Proof. The linear precision property (11) of the mean value coordinates implies that P linear functions f are correctly interpolated by 4i=1 λi (x) f (vi ) = f (x) where vi are the vertices of the unit square. By choosing f (x) B y, we obtain λ3 (x) + λ4 (x) = y. Differentiating by x yields the second equality in (27). Everything else follows completely analogous and by using the partition of unity property (10). t u P Theorem 2.6 (C 1 -continuity I). A mean value B´ezier patch P(λ) = |α|=n bα Bnα (λ) is C 1 everywhere (in particular at the vertices) iff it satisfies the smoothness condition b(n−1)ei +ei+2 = b(n−1)ei +ei+1 + b(n−1)ei +ei−1 − bnei , i = 1 . . . 4
(31)
(indices of e modulo 4). Proof. By the symmetry of the mean value coordinates, it is sufficient to prove the claim at one vertex and for one partial derivative. By Lemma 2.3 (compare also (36)), we obtain lim
x→(1,1) x,1
∂ P(λ(x)) = ∂x ∂ ∂ λ3 (x) + (b(n−1)e3 +e2 − b(n−1)e3 +e1 ) lim λ2 (x) x→(1,1) ∂x x→(1,1) ∂x
n (bne3 − b(n−1)e3 +e4 ) lim x,1
(32)
x,1
and
∂ P(λ(1, 1)) = n(bne3 − b(n−1)e3 +e4 ) . (33) ∂x We have C 1 -continuity if and only if (32) and (33) are equal. Using (29), we obtain the claim. t u Theorem 2.7 (C 1 -continuity II). Let P and P0 be given as in (25). Let us denote bi jkl B bie1 + je2 +ke3 +le4 and correspondingly for b0 . Then P and P0 form a C 1 -continuous surface if (26) and (31) are satisfied and b0,n−i,i,0 − b0,n−i,i−1,1 = b0n−i,0,1,i−1 − b0n−i,0,0,i
∀i = 1 . . . n
(34)
b0,n−i,i,0 − b1,n−i−1,i,0 = b0n−i−1,1,0,i − b0n−i,0,0,i
∀i = 0 . . . n − 1 .
(35)
and
Respective conditions hold to join patches along the other domain boundary edges. Proof. The derivatives in y-direction coincide by Prop. 2.1.3. In x-direction, we obtain by Lemma 2.3 and (27) ! n−1 X n−1 ∂ P(λ(1, y)) = n (b0,n−1−i,i+1,0 − b0,n−1−i,i,1 ) i ∂x i=0 ! n−1 + (b0,n−i,i,0 − b1,n−1−i,i,0 ) i
! ∂ n−1−i i λ3 · λ2 λ3 (1, y) ∂x ! ! ∂ n−1−i i λ2 · λ2 λ3 (1, y) ∂x
(36)
Mean Value B´ezier Surfaces
7
and ! ! n−1 X ∂ 0 0 n − 1 ∂ 0 0 n−1−i 0 i 0 0 P (λ (1, y)) = n λ ·λ λ4 (1, y) (bn−1−i,0,1,i − bn−1−i,0,0,i+1 ) ∂x ∂x 3 1 i i=0 ! ! ! n − 1 ∂ 0 0 n−1−i 0 i 0 0 λ ·λ λ4 (1, y) . (37) + (bn−1−i,1,0,i − bn−i,0,0,i ) i ∂x 2 1 By the symmetry of the coordinate functions, we obtain λ2n−1−i (1, y) = λ01 n−1−i (1, y), (27)
∂ ∂ 0 ∂ 0 λi3 (1, y) = λ04 i (1, y), and ∂x λ3 (1, y) = − ∂x λ4 (1, y) = ∂x λ3 (1, y). By comparing the coefficients, we see that (34) and (35) are sufficient conditions for C 1 -continuity. t u
Theorem 2.8 (C 2 -continuity I). Let P and P0 be given as in (25). Then P and P0 form a C 2 -continuous surface (C 1 -continuous at the vertices) if (26), (34) and (35) are satisfied, and, for all i = 0 . . . n − 1, b0,n−1−i,i+1,0 + b1,n−1−i,i,0 − b0,n−1−i,i,1 − b0,n−i,i,0 = 0 ,
(38)
and, for all i = 0 . . . n − 2, b2,n−2−i,i,0 + b0,n−i,i,0 − 2b1,n−1−i,i,0 = b0n−2−i,2,0,i + b0n−i,0,0,i − 2b0n−1−i,1,0,i ,
(39)
b0,n−1−i,i+1,0 + b1,n−2−i,i,1 − b1,n−2−i,i+1,0 − b0,n−1−i,i,1 (40) = b0n−1−i,0,0,i+1 + b0n−2−i,1,1,i − b0n−2−i,1,0,i+1 − b0n−1−i,0,1,i , and b0,n−2−i,i+2,0 + b0,n−2−i,i,2 − 2b0,n−2−i,i+1,1 = b0n−2−i,0,0,i+2 + b0n−2−i,0,2,i − 2b0n−2−i,0,1,i+1 . (41) Respective conditions hold to join patches along the other domain boundary edges. Proof. The second derivatives in y-direction coincide by Prop. 2.1.3. In x-direction, we obtain by Lemma 2.3 and by differentiating (27) and (29) ∂2 P(λ(1, y)) = ∂x2 n−1 ! ! X n − 1 ∂2 λ3 n−1−i i n (b0,n−1−i,i+1,0 − b0,n−1−i,i,1 − b0,n−i,i,0 + b1,n−1−i,i,0 ) λ2 λ3 (1, y) 2 i ∂x i=0 ! ! n−2 X n − 2 ∂λ2 2 n−2−i i + n(n − 1) (b2,n−2−i,i,0 + b0,n−i,i,0 − 2b1,n−1−i,i,0 ) λ2 λ3 (1, y) i ∂x i=0 ! ! n − 2 ∂λ2 ∂λ3 n−2−i i + (b0,n−1−i,i+1,0 + b1,n−2−i,i,1 − b1,n−2−i,i+1,0 − b0,n−1−i,i,1 )2 λ λ3 (1, y) ∂x ∂x 2 i ! ! ! n − 2 ∂λ3 2 n−2−i i λ2 λ3 (1, y) (42) + (b0,n−2−i,i+2,0 + b0,n−2−i,i,2 − 2b0,n−2−i,i+1,1 ) i ∂x
8
Torsten Langer and Hans-Peter Seidel
and a similar term for
∂2 0 0 P (λ (1, y)). ∂x2
The rest follows again by comparing the coeffi2
2
(27)
2
∂ ∂ ∂ 0 0 cients of P and P . With (34), (35), and ∂x 2 λ3 (1, y) = ∂x2 λ4 (1, y) = − ∂x2 λ3 (1, y) we deduce (38) from the second line of (42). Note that (31) is a special case of (38) and that an analogon of (38) holds for the control points b0α as well because of (34) and (35). The other three lines of (42) lead to (39)–(41). When computing the mixed derivatives of P and P0 , we observe that they already coincide by (34) and (35). t u 0
P Theorem 2.9 (C 2 -continuity II). A mean value B´ezier patch P(λ) = |α|=n bα Bnα (λ) is C 2 everywhere (in particular at the vertices) if it satisfies the smoothness conditions (38) for i = 0, 1, n − 1, n and, additionally b2,0,n−2,0 + b0,2,n−2,0 − 2b1,1,n−2,0 = b0,0,n,0 + b0,0,n−2,2 − 2b0,0,n−1,1
(43)
and respective conditions for the other vertices. Proof. The proof proceeds along the lines of the proof of Thm. 2.6. We use Lemma 2.3 ∂2 ∂2 to compute ∂x 2 P(λ(1, 1)) and limx→(1,1), x,1 ∂x2 P(λ(x)) and obtain (43) by comparing the coefficients. Note that we obtain the condition b2,0,n−2,0 + b0,2,n−2,0 − 2b1,1,n−2,0 = b0,1,n−1,0 + b1,0,n−2,1 − b1,0,n−1,0 − b0,1,n−2,1
(44)
as well, but this equation is already satisfied by (43) and (38). We get additional con∂2 ∂2 straints from evaluating ∂y 2 P(λ(1, 1)) and limx→(1,1), x,1 ∂y2 P(λ(x)) and from comparing ∂2 ∂x∂y P(λ(1, 1))
with its respective limit values. But again, these constraints can already be deduced from (43) and (38). t u Theorems 2.8 and 2.9 together give sufficient conditions to construct a mean value B´ezier surface from patches that is C 2 -continuous everywhere.
3 Results and Conclusion We observe that mean value B´ezier surfaces are well-suited for modeling surfaces. Although the advantage of the greater number of control points (compared to tensor product B´ezier surfaces of the same degree) is diminished by a greater number of constraints, we obtain nevertheless interesting, new possibilities for surface construction. One possible, additional benefit is that mean value coordinates, and hence mean value B´ezier patches, are well-defined for all convex and non-convex polygons, and we are not restricted to rectangular domains. In Fig. 2, we show a mean value B´ezier surface that is constructed from four patches of order 2. Here, only the conditions for C 1 -continuity along the common boundaries were met ((26), (34), and (35)). The central vertex is only C 0 . As a result, the joining lines and the central vertex are visible in the shading. In Fig. 3, we demonstrate that mean value B´ezier surfaces and tensor product B´ezier surfaces are qualitatively comparable. These surfaces are constructed from four patches
Mean Value B´ezier Surfaces
9
Fig. 2. A mean value B´ezier surface constructed from four patches. Here, only the conditions for C 1 -continuity along the common boundaries and C 0 -continuity at the center vertex were met. This leads to an unpleasant appearance.
of order 3, and the same control points were used in both cases. Here, all constraints to achieve a C 2 -continuous surface were enforced, except for the central vertex that is only C 1 for the mean value B´ezier surface. This results in two visually indistinguishable ∂2 1 surfaces. Only if we compare the isolines of ∂x 2 P, the C -continuous vertex can be discerned. Mean value coordinates were recently generalized to higher dimensions [9, 10, 8]. This allows to define mean value B´ezier hyper-patches on (hyper-)cubes. A smoothness analysis similar to the one presented in this paper can be done for the resulting hypersurfaces. Finally, we want to remark that most of our results are not only valid for constructing B´ezier surfaces with mean value coordinates but also for all other differentiable barycentric coordinates as introduced in [11]. This leads to a whole family of different B´ezier surfaces. Nevertheless, the convex hull property requires a special property of the mean value (and Wachspress) coordinates: positivity inside the domain. This condition is only guaranteed for few other barycentric coordinates [11] and the reason that we focused on mean value B´ezier surfaces. If Wachspress coordinates are used in our construction of B´ezier surfaces, we obtain ∂ W ∂ W constant functions for ∂x λ and ∂y λ , and the second derivatives vanish. What remains are the well-known conditions of tensor product B´ezier surfaces.
10
Torsten Langer and Hans-Peter Seidel
Fig. 3. Comparison of a tensor product B´ezier surface (left) and a mean value B´ezier surface (right). Both surfaces are visually indistinguishable which shows the high quality that is achiev∂2 able with mean value B´ezier surfaces. Only the close-up, showing isolines of ∂x 2 P, reveals the fine differences.
Mean Value B´ezier Surfaces
11
Acknowledgments. We would like to thank Alexander Belyaev and Holger Theisel for helpful discussions. The research of the authors has been supported in part by the EU-Project “AIM@SHAPE” FP6 IST Network of Excellence 506766.
References 1. B´ezier, P.: How Renault uses numerical control for car body design and tooling. Paper SAE 680010, Society of Automotive Engineers Congress, Detroit, Mich. (1968) 2. de Casteljau, P.: Outillage m´ethodes calcul. Paris: Andr´e Citro¨en Automobiles S.A. (1959) 3. Forrest, A.R.: Interactive interpolation and approximation by B´ezier polynomials. Comput. J. 15(1) (1972) 71–79 4. Loop, C.T., DeRose, T.D.: A multisided generalization of B´ezier surfaces. ACM Transactions on Graphics 8(3) (1989) 204–234 5. Wachspress, E.L.: A Rational Finite Element Basis. Volume 114 of Mathematics in Science and Engineering. Academic Press, New York (1975) 6. Floater, M.S.: Mean value coordinates. Computer Aided Geometric Design 20(1) (2003) 19–27 7. Hormann, K., Floater, M.S.: Mean value coordinates for arbitrary planar polygons. ACM Transactions on Graphics 25(4) (October 2006) 1424–1441 8. Langer, T., Belyaev, A., Seidel, H.P.: Spherical barycentric coordinates. In Sheffer, A., Polthier, K., eds.: Fourth Eurographics Symposium on Geometry Processing, Eurographics Association (June 2006) 81–88 9. Floater, M.S., K´os, G., Reimers, M.: Mean value coordinates in 3D. Computer Aided Geometric Design 22 (2005) 623–631 10. Ju, T., Schaefer, S., Warren, J.: Mean value coordinates for closed triangular meshes. ACM Transactions on Graphics 24(3) (2005) 561–566 11. Floater, M.S., Hormann, K., Ko´ s, G.: A general construction of barycentric coordinates over convex polygons. Advances in Computational Mathematics 24(1–4) (January 2006) 311–331