0% found this document useful (0 votes)
152 views45 pages

Triangular Bernstein-Bezier Patches

The rapidly growing field of CAGD (Computer Aided Geometric Design) has been dominated by the theory of rectangular surface patches since its inception in the late sixties by S. Coons (from MIT) and P. Brzier (from Rrnault). Historically, it is therefore very remarkable that triangular patches were already considered in the late fifties by P. de Casteljau (from Citroen). He had then realized that what is now known as Brzier curves admitted a symmetric formulation in terms of barycentric coordinates.

Uploaded by

Tim Zook
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
152 views45 pages

Triangular Bernstein-Bezier Patches

The rapidly growing field of CAGD (Computer Aided Geometric Design) has been dominated by the theory of rectangular surface patches since its inception in the late sixties by S. Coons (from MIT) and P. Brzier (from Rrnault). Historically, it is therefore very remarkable that triangular patches were already considered in the late fifties by P. de Casteljau (from Citroen). He had then realized that what is now known as Brzier curves admitted a symmetric formulation in terms of barycentric coordinates.

Uploaded by

Tim Zook
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 45

Computer Aided Geometric Design 3 (1986) 83-127 83

North-Holland

Triangular Bernstein-Bkzier patches


Gerald FARIN
Department of Mathematics, University of Utah, Salt Lake City, UT 84112, U.S.A.

Received 14 January 1986


Revised 12 May 1986

Contents

Introduction ...... ....... ........... 84 5. Split Triangle Interpolants .... . .. . . 107


5.1. The C’ Clough-Tocher interpolant .. _. . 108
I. THEORY ......... ..... .... .... 85 5.2. Limitations of the Clough-Tocher split . 110
5.3. The C’ Powell-Sabin interpolants . . . . 111
1. Introductory Concepts ................ 85 5.4. C’ Split square interpolants ....... . . 112
1.1. Barycentric coordinates .............. 85
1.2. Lagrange interpolation ............... 86 6. The N-Dimensional Case . . . . . . _. . . . . 114
1.3. Bernstein polynomials ............... 87 6.1. Basic results . . . . . . . . . . . . . .. .. . 114
1.4. Degree elevation ................... 89 6.2. The generalized nine parameter interpolant 115
6.3. The generalized Clough-Tocher interpolant 116
2. The de Castefiau Algorithm and its Applica-
lions ............................ 91 7. Contouring ....................... 117
2.1. The de Casteljau algorithm ............ 91 7.1. General contouring ................. 117
2.2. Derivatives ....................... 93 7.2. Contouring quadratics ............... 118
2.3. Domain transformation .............. 95
2.4. Alternative surface forms ............. 99 8. The Parametric Case . . . . . . . . . . _ . .. 119
8.1. Where to use triangular patches .. _ . _. 120
3. Shape Considerations ................ 102 8.2. Parametric continuity .... .... .. . .. 120
3.1. Convexity ........................ 102 8.3. Visual continuity . . . . . . . . . . . . .. . . 120
3.2. The variation diminishing property ...... 103 8.4. Parametric nine parameter interpolants . . 123

II. APPLICATIONS. . . . . . . . . . . . . . . _. . 104


Conclusion ........................... 123

4. Hermite Interpolants . . , . . . . . . . . . . . . . 104


Appendix: A data structure ............... 124
4.1. The Co nine parameter interpolant ...... 104
4.2. C’ quintic interpolants .............. 104
References ........................... 125
4.3. The general case ................... 106

Keywords. Bernstein polynomials, Bkzier methods, scattered data interpolation, triangular schemes.

Notation

domain triangles and simplices bx BCz.ier ordinate corresponding to h


points in the domain of a function X’ multi-index h with first component X, = r
barycentric coordinates To barycentric coordinates with T, = 0
directions in the domain of a function .%? control net (a piecewise linear function)
multi-indices K(r) intermediate de Casteljau ordinates
barycentric coordinates of vertex T, of do- Di directional derivative with respect to edge di-
main triangle or simplex rection no. i
D,f directional derivative of f with respect to a b,, bh points in R * or W3 (where BP2 or tR3 is the
I%‘(T) Bernstein polynomial range of a curve or surface)
b” Bernstein-Bezier triangular patch

0167-8396/86/$3.50 0 1986, Elsevier Science Publishers B.V. (North-Holland)


84 G. Farin / Triangular Bernstein- Bkzier patches

Introduction

The rapidly growing field of CAGD (Computer Aided Geometric Design) has been
dominated by the theory of rectangular surface patches since its inception in the late sixties by
S. Coons (from MIT) and P. Brzier (from Rrnault). Historically, it is therefore very remarkable
that triangular patches were already considered in the late fifties by P. de Casteljau (from
Citroen). He had then realized that what is now known as Brzier curves admitted a symmetric
formulation in terms of barycentric coordinates. This concept is immediately generalizable to
surfaces - it yields triangular patches. So de Casteljau considered triangular patches before he
defined tensor product 'Brzier' patches. This historical 'first' of triangular patches is reflected
by the mathematical statement that they are a more 'natural' generalization of Brzier curves
than are tensor product patches. We should note that, while de Casteljau's work was never
published, that of Brzier was, which accounts for the fact that the corresponding field now
bears Brzier's name. In this paper, we adopt this naming convention, although to the author's
knowledge Brzier never considered triangular patches. For the placement of triangular
Bernstein-Brzier surfaces in the field of CAGD, see [Barnhill '85].
While de Casteljau's work (laid down in two internal Citroen technical reports and not easily
read) remained unknown until its discovery by W. Boehm about 1975, other researchers
realized the need for triangular patches. M. Sabin [Sabin '77] worked on triangular patches in
terms of Bernstein polynomials, unaware of the work of de Casteljau. Among possibly more
people concerned with the development of triangular patches we name P.J. Davis [Davis '76], L.
Frederickson [Frederickson '70, '71], G. Farm [Farin '79], and P. Sablonni~re [Sablonni~re '82].
All of the mentioned Brzier-type approaches relied on the fact that piecewise surfaces were
defined over regular triangulations; arbitrary triangulations were considered by [Farin '80]. A
Coons-type triangular patch (a so-called transfinite interpolant) was developed by [Barnhill,
Birkhoff, Gordon '74].
The main attraction of Bernstein-Brzier patches is that they lend themselves easily to a
geometric understanding of the mathematical concepts that are involved. The structure of this
paper is itself an illustration of this fact: the first three chapters contain a mostly algebraic
treatment of basic properties of Bernstein-Brzier patches. After these results have been
established, it is basically sufficient to address geometric concepts (collinearity of points, area
ratios of triangles, etc.) in order to formulate algorithms. These would otherwise require
extensive algebraic ireatment and have in fact often been derived in a much more complicated
way than described here.
In summary, we feel that the theory of Bernstein-Brzier methods very much helps to give
meaning to the 'G' in CAGD.
G. Farin / Triangular Bernstein- Bbzier patches 85

I. THEORY

1. Introductory concepts
1.1. Barycentric coordinates
A n y point P in the plane can be expressed in terms of barycentric coordinates with respect
to any n o n d e g e n e r a t e triangle 3 - in that plane having vertices T 1, T2, T3:
3
P= E ~'Y,- (1.1)
i=1
T h e "ri are usually normalized by the r e q u i r e m e n t
3
l'rl := ~ r i = 1. (1.2)
i=1
Equations (1.1) a n d (1.2) form a 3 × 3 linear system (note that (1.1) is a vector equation) which
has the unique solution
a r e a ( P , T2, T3) a r e a ( T 1, P , T3) area(T1, T2, P )
r 1 = area(T1, T2, T 3 ) ' r2 = area(T1, T2, T 3 ) ' T3 = area(T1, T2, T3)"
T h e areas arising in the definition of the "ri are the d e t e r m i n a n t s arising from the solution of the
3 × 3 system by C r a m e r ' s rule.
If P is inside oq-, one gets
~-i >~ 0; i=1,2, 3.
T h e triangle vertices T~ have barycentric coordinates c , where e 1 = ( 1 , 0 , 0 ) , e2 = ( 0 , 1 , 0 ) ,
e 3 = (0, 0, 1). Figs. 1.1a and l a b illustrate m o r e geometric properties of barycentric coordi-
nates.
A remark on the origin of the w o r k 'barycentric': 'barycenter' means center of gravity. If
masses "r~ are attached to the p o i n t s T~, their center of gravity is located at P, with the
a c c u m u l a t e d mass "r1 + "r2 + % = 1.
A n i m p o r t a n t p r o p e r t y of barycentric coordinates is their affine invariance: if the triangle J -
together with P is transformed by an affine transformation, the t r a n s f o r m e d point has
u n c h a n g e d barycentric coordinates with respect to the t r a n s f o r m e d triangle. T o see this, let q~
be an affine t r a n s f o r m a t i o n ~ P = A P + Q. T h e n
q~P= A P + Q = A(Y'~'riT~) + Q = Y'.v,(AT, + Q ) = Y'~r,~T,.
Barycentric coordinates are symmetric: each side of the triangle is treated the same way as the

Fig. 1.1.a. The geometry of barycentric


coordinates: the point P subdivides the
drawn' radial' lines in the indicated ratios;
the. endpoints of the 'radials' subdivide
the edges in the indicated ratios. Only two
%- of the six generated ratios are shown; the
rl " 7"3 others follow by symmetry.
86 G. Farin / Triangular Bernstein - Bbzier patches

Fig. 1.1.b. The geometry of barycentric


coordinates: the lines r s --- const, are shown
together with the ratios in which they
subdivide the edges. Only one such ratio
7'3 rl : r2 : r3 7"1 is shown.

other ones. The use of barycentric coordinates is thus easier and more elegant than the use of a
standard triangle (defined by the three points (1, 0), (0, 1), (0, 0)), in which case distinctions are
necessary for each side (see, e.g., [Barnhill, Birkhoff, G o r d o n '74]).
In the following we shall be concerned with bivariate functions that are defined over
triangles. We shall write these as f(~-), i.e., as functions of three d e p e n d e n t variables. This
raises the problem of how to handle differentiation: the terms 3f/3"c~ do not have a geometric
interpretation. Therefore, one resorts to directional derivatives: Let p, o be (barycentric
coordinates of) two arbitrary points. Their difference a (note that [a[ -'= )-".a i --0) defines a
direction with respect to which directional derivatives can be taken:

3 3f (1.3)
E
i=1

Thus when dealing with functions in terms of barycentric coordinates, directional derivatives
will be used instead of partial derivatives. The direction a need not be of unit length.
As an example for directions in barycentric notation, consider the direction a defined by
T2 - Ta. In terms of barycentric coordinates one has a = c 2 - ca = ( - 1, 1, 0). As a general rule,
barycentric point coordinates sum to one while barycentric vector coordinates sum to zero.

1.2. Lagrange interpolation

One of the most important applications of univariate polynomials is in interpolation, and we


shall now show how those concepts carry over to polynomial interpolation over a triangle. One
difference to the univariate case is that the data points must be distributed in the triangle in a
completely symmetric fashion, i.e., we can only generalize the case of uniform knot spacing in a
straightforward way.
Let X = ()kl, ~k2, ~k3) , [~k[ = n, X, ~ (0, 1 . . . . . n}. Thus the points 'rx := X/n form an n-par-
tition of J ' , see Fig. 1.2 for the case n = 4. Suppose one is given point data Px at the locations
r x and one wants a polynomial of total degree n that interpolates to these data points (see also
[Gregory '781). The n u m b e r of data equals (n + 1)(n + 2)/2, the (n + 1)st so-called triangle
number, The desired interpolating polynomial is given by
p('r)= Y' pxL~,('r), (1.4)
IXl=n

where
n" x,-a x2-1 x3-1 r )( s )( t)
V rFI I-I FI (1.5)
= 0 s = 0 t~O n n n
G. Farin / Triangular Bernstein- Bkzier patches 87

P0,4,0

Fig. 1.2. Lagrange interpolation: the full


circles indicate which data points in-
fluence the intermediate value P1.1.0-
2 In
P4,0,O this example: n = 4, thus the data points
are located over a four-partition of the
PO,O,4
triangle.

For a proof one simply checks that the L~ are cardinal functions:

where 8,, x denotes the Kronecker delta. (Note that X and/1 are triples.) This cardinal property
also ensures that the L~ form a basis for all n th degree polynomials defined over ~-.
In univariate Lagrange interpolation, one often prefers a recursive evaluation scheme to the
evaluation of the cardinal form. Such a scheme is also available for Lagrange interpolation over
triangles:
Let p~,, IX I = n - r, interpolate to the points Px (see also Fig. 1.2). Then the recursion
3
p i ( q . ) = -n ~ ( % - - - ~kk) p xr-1
+d(r) (1.6)
r =1 n

with pO = P x yields the result p ( r ) = p , ~ ( r ) where ~ = (0, 0, 0). Equation (1.6) is the analogue
to Aitken's scheme for univariate polynomial interpolation, see also [Prenter '74].
Two special cases: along the boundaries of o~-, the interpolant (1.4) reduces to the
well-known univariate Lagrange interpolant to the data on that boundary. For the case n = 1,
one has linear interpolation, i.e., the plane through the three data points.

1.3. Bernstein polynomials

Bernstein polynomials of degree n over a triangle are defined by

B~,(r) = n! r x'Tx2rx3" I Xl = n (1.7)


Xl !)t 2 [)k3 !

and the convention B~,(r) = 0 if Xk ~ [0, n] for some k. Bernstein polynomials are terms of the
trinomial expansion of 1 = [r I", thus
B~,('r) = 1. (1.8)
IXl =n
Since for rk > 0 we have
B~,(r) >_ 0, (1.9)
Bernstein polynomials form a partition of unity. Another property of Bernstein polynomials
is that they have only one maximum over .Y-, namely B~, assumes its maximum at "r = X/n. Fig.
1.3 shows two examples of cubic Bernstein polynomials.
Bernstein polynomials B~, are the natural generalization of univariate Bernstein polynomials
88 G. Farin / Triangular Bernstein - Bkzier patches

Fig. 1.3. Bernstein polynomials: the two cubic Bernstein polynomials B l.lA
3 and Bo,3,
3 o. Both surfaces are shown with an
offset over the domain triangle.

B f ( t ) = (~')t~(1- t ) " - q the univariate Bf are defined over [0, 1], and with the definitions
~1 = t, ~2 = 1 - t, they can be written as
n! rl~l T2x2"

Here, ~1 and r 2 are barycentric coordinates on the interval [0, 1] (in fact, on any interval).
We shall be interested in polynomials b" of the form
b"(~) = E bxB~,(~')- (1.10)
IXl=n
The b x are called B~zier ordinates of b ~. The piecewise linear interpolant ~ to the points
( X / n , bx) is called B&ier net or control net of b ~. As an example for a control net, consider the
polynomial B~: its control net ordinates are defined by b x = 3x. ~. The control net is then given
by (X/n, b x). Fig. 1.4 illustrates the example of a cubic patch with the corresponding control
net. This control net uniquely defines the patch, a fact which is made use of in the so-called
Bernstein-Brzier technique, where all information about the patch is extracted (very often in a
geometric way) from this net.
It is important to mention that the representation (1.10) of b ~ is unique, i.e., the B~, form a
basis for all polynomials of total degree n that are defined over 3z, see, e.g., [de Boor '86a].
From equations (1.9) and (1.10) we immediately get the convex hullproperty: b('c) lies in the
convex hull of the defining ordinates, i.e., min{bx} < b ( ~ - ) < m a x ( b x } . This property is
important for contouring and rendering of surfaces, see also Section 7.
We shall denote barycentric coordinates corresponding to "q = 0 by z 0 = (0, r 2, "r3). Simi-
larly, we shall reserve the notation Xr for multiindices with X1 = r, in particular ~0 = (0, 2, 2, 2,3).
This notation is useful to describe phenomena pertaining to the edge rl = 0. Analogous
notation could be developed for any edge, but because of the symmetry of the considered
theory, it is sufficient to consider just one edge.
The boundary curves of the patch b" are (univariate) B4zier polynomials (see [Boehm, Farin,
K a h m a n n '84]). Their control polygons are the boundaries of the control net. For the example
"r° = (0, "r2, "r3), i.e., for the triangle edge T 2, T3, we obtain
b"(T°) = E bx°B~,°(~°) •
IX°l=n
G. Farin / Triangular Bernstein- BOzier patches 89

/•b 3

bo,o,a~'~ t / 3 3

3 1 2

rl
Fig. 1.4. Bernstein-B6zier patches: a cubic patch together with its control net.

( N o t e that this defines a univariate curve since "r2 + ~'3 = 1.) As a consequence, the tangent
plane of b" at e 3 is d e t e r m i n e d by bo,o,~bl,o,,_a,bo,l,,_l. A m o r e general s t a t e m e n t can be
f o u n d in T h e o r e m 2.4.
We finally note that for the case of the control net being planar, the generated p a t c h is also
planar. This is a property of Bernstein-B6zier patches that is referred to as linear precision.

1.4. Degree elevation

It is possible to write b"('r) as a B6zier p o l y n o m i a l of degree n + 1, i.e.

E bxB~,(') = E bO)B;+a(')• (1.11)


IXl =n It~l = n + l

L e m m a 1.1. The b(~1) are determined by

by) = 1 /zkb~,_,k ; [/.t[ = n + 1. (1.12)


n+l =a

Proof.Simply multiply the left h a n d side of (1.11) by 1 = I"rl and c o m p a r e coefficients of like
powers.
90 G. Farin / Triangular Bernstein- Bkzier patches

o cubic
• quartic

Fig. 1.5. Degree elevation: the control


nets of a cubic patch together with that of
the equivalent quartic patch. Note that
the new control points are generated in
' upside down' subtriangles.

Equation (1.12) has a simple geometric interpretation: the ordinates b~1) are found by
evaluating the (piecewise linear) control net M of b" at the new abscissae I-t/(n + 1):
b~1)= ~(I.t/(n + 1)); Fig. 1.5 illustrates this for the case n = 3. As a consequence, the new
control net ~1 lies in the convex hull of the old net ~ .
Let us now investigate what happens if we repeat the process of degree elevation. Let ~
denote the control net after the i th degree elevation. Also recall that ~ is a piecewise linear
function, defined over the same triangle as b ". The vertices of ~ i are given by

After the ith degree elevation, we have


bxB~,('r) = ~ b(~i)B~+i('r). (1.13)
I~1 = n It~l = n + i

The following Lemma is due to J. Zhou [Zhou '85]:

Lemma 1.2.

b(i)= ~ bx X1 X2 )~3 n "


[~l =n

Proof. Multiply the left hand side of (1.13) by 1 = E I~I=iBv('r) and rearrange.

If one repeats the process of degree elevation, the control nets ~ , will converge to the
surface b" which each of them defines [Farin '79]:

Theorem 1.3.
lim ~ , = b". (1.15)
i---~ oC

Proof. The first part of the proof given here is due to J. Zhou [Zhou '85]: consider a sequence
= / t ( i ) with I/z I = n + i and

lim
i---,~ n q - i
/z ='r
(1.16)

uniformly for some "r inside the domain triangle. We shall first prove that
l i m b(~i) = b'('r ). (1.17)
i - - ~ oO
G. Farin / Triangular Bernstein- Bbzier patches 91

The following inequalities are verified after some calculation:

Y" b x B ~ ( # - . X . ) < b f f ) ( n + i ) ! <_ ~, bxB~,(~ ). (1.18)


[XI= n k n -1- 1 -- i! iXl= n

Since g/(n + i) tends to "r uniformly, both the left and the right hand side of (1.18) tend to
b"('r), and (1.17) is proved.
For the second part of the proof, one observes that in the limit, the points #/(n + i) are
dense in the domain triangle. Thus for any "r, there exists a sequence (1.16) and thus a sequence
of Brzier ordinates bff ) with limi_,~b~ ° = b"(r). Hence for any r, the sequence (#/(n + i),
~ ( g / ( n + i))) has a subsequence that converges to ('r, b"(-r)), which completes the proof.

2. The de Casteljau algorithm and its applications

In the theory of B4zier curves, the algorithm for the recursive evaluation of the curve plays a
fundamental role: it provides subdivision formulas, differentiability conditions, and more (see
[Boehm, Farin, Kahmann '83]). This algorithm is due to P. de Casteljau [de Casteljau '63], and
was developed together with the analogous algorithm for triangular patches, to be discussed
below. It is interesting to note that the Casteljau developed the triangular algorithm before he
studied the tensor product generalization of the curve algorithm, although it is a commonly
held belief that tensor product patches are 'the' natural generalization of curve schemes.

2.1. The de Casteljau algorithm

The Bernstein polynomials B~, satisfy a recurrence relation:

Lemma 2.1.
3
T,nx_e(T); IXl----n. (2.1)
i=1

Proof. Use the definition of the B~, and the identity

Xl!X2!X3! Xl ~k 2 '

and the recursion formula for binomial coefficients.

This lemma allows to expand b n in terms of Bernstein polynomials of lower degree with
(polynomial) coefficients b~(z):

Theorem 2.2.
b"(r) = Y'~ brx(r)B~-'(T); O<r<n, (2.3)
I~'1=n-r
where
b°('r) = bx,
3
b~,('r) = Y'~ "ribx+e(~);
,-1 IXl = n - r . (2.4)
i=1

It is interesting to note the similarity between the recursion (2.4) for the Brzier coefficients
92 G. Farin / Triangular Bernstein- Bbzier patches

with the recursion (1.6) for the Lagrange coefficients. This connection is considered in more
detail by [Farin, Barry '86].

Proof. We use induction on r. The theorem is true for r = 0 by definition. The induction
proceeds as follows:
bn (I") = E b r x ( ' r ) B ~ - r ( "r )
I~l=n-r

by the recurrence relation (2.1):


3
bn ('r) = E b ~ ( z ) E "l'iD~,--,inn--r--lt'['l")
[Xl=n-r i=1

by the inductive hypothesis:


3
bn ( ' r ) --- E E "ri b ~ + , ' ( "r ) B ~ - r - l ( "r)
Ihl=n-r-1 i=1
= ~_~ brx+l('r)B~,-r-l('r).
I~1 =n--r--1

Since bn(r) = b~('r), Theorem 2.2 is proved; it provides the so-called algorithm of de Casteljau
for the recursive evaluation of bn(~'), see also Fig. 2.1.
The recursion (2.4) has a simple geometric interpretation: The points (X/n, b~x('r)) are the
image of the domain triangle ,~- together with r under affine maps onto the upright triangles of
the net of bE- l(z). Consequently, Bernstein-Brzier patches are invariant under affine transfor-
mations: It does not matter if b~('r) is computed and then subjected to an affine transforma-
tion or if the net is subjected to that affine transformation and b'('r) is computed by
application of the de Casteljau algorithm to the transformed net.
It is of interest to note that in the special cases b x = Xi/n; i = 1, 2, 3, the de Casteljau
algorithm computes "ri, i.e.
Ti= E TiB~ ( T ) ; i=1,2, 3.
Ihl =n

As a consequence, Fig. 2.1 shows the 'top view' of the subnets generated by the de Casteljau
algorithm.
The intermediate coefficients b~, can also be written explicitly as
b~,('r)= ]~ bx+~,B~(r); IXl=n-r. (2.5)
{tL{= r

For a proof, one simply checks that (2.5) is consistent with the recursion (2.4).

Fig. 2.1. The de Casteljau algorithm: the


original cubic control net together with
the quadratic and linear nets that de-
termine the resulting point. All inter-
mediate control points are generated in
'upright' subtriangles. The linear n e t
(bold) of the b 2, IXl = 1, determines the
tangent plane at b~(~'); here, ~-= (½, 1
¼).
G. Farin / Triangular Bernstein- Bkzier patches 93

Thus, the intermediate coefficients b~, depend on those b, for which t,~ > )t~; i = 1, 2, 3, as is
immediately verified by inspection of Fig. 2.1.

2.2. Derivatives

Let a be a direction with respect to which one wants to compute directional derivatives (see
Section 1.1). Also let 3~f(-r) denote the partial derivative of a function f, i.e.

O"f('r)

The r th directional derivative of f with respect to a is given by a standard result from


multivariate calculus:
Drf('r) = E Bd(a) 3~f(~') • (2.6)
I~i =r
Note that the term Bd(a) is well-defined although we have l al = 0. It is important to
emphasize the fact that Bernstein polynomials are the natural way to write down the
directional derivative of any function. Hence it is not surprising that the derivatives of
Bernstein-B6zier patches take on particularly simple forms.
A straightforward calculation verifies that in the case of f = B~,
n! tl--F
O'B~,('r) = ( n _ r ) ! B x _ , ( T ) ; It_t[ =r.

This immediately yields

Theorem 2.3. The rth directional derivative of a Bernstein polynomial B~ is given by


n!
DrB~,(~') - ( n _ r ) ! IIz~[ =rB;(
r of ~ l:t n -- r [ ,l. ) .
/'x-i,, (2.7)

We now have the tools necessary to prove

Theorem 2.4. The rth directional derivative of b" is given by


n!
D~b'(~')- ~_. b~-~('c)B~(a). (2.8)
(n-r)! ixl=~
Proof. Application of Theorem 2.3 to the definition of b" yields
n!
Drb,(z)- Z ~, buB;,(a)B;--x~('r) •
(n -- r)! I~1 =n IXl = r
Rearranging:
n~
D~b ( r ) =
r n
E E b~,+xB;,(a)B~-r(r) (2.9)
(n - r)! I,l=.-r IXl =r

n~
(n - r)! IXl = r [/,tl =n--r

Application of equation (2.5) gives the desired result.

A geometric interpretation of Theorem 2.4 is as follows: the three b~-1, I Xl = 1, determine


the tangent plane at b ' ( r ) etc. (see also Fig. 2.1).
94 G. Farin / TriangularBernstein- Bbzierpatches

A dual f o r m u l a is p r o v i d e d by

Corollary 2.5.
n!
~n --r b;(a)Bf-r(l")"
D:b'(r)= ( n - r ) ! i~l= (2.10)

Proof. Replace "r by a in e q u a t i o n (2.5). T h e n (2.9) yields (2.10).

T h e terms b~(a) in (2.10) have a simple geometric interpretation for the case r = 1: b~(a);
IV I = n - 1, denotes the slope (in direction a) of the plane s p a n n e d by the three b~,+,,.
T h e o r e m 2.4 and Corollary 2.5 have the following interpretation: If one c o m p u t e s D r
according to T h e o r e m 2.4, one first performs n - r de Casteljau steps with respect to "r (to
obtain the b~,-r(r)), then o n e p e r f o r m s r m o r e de Casteljau steps with respect to a to obtain
the result. U s i n g Corollary 2.5, the situation is reversed: one first performs r de Casteljau steps
with respect to a (to obtain the b~(a)), then n - r steps with respect to r to obtain the result.
Moreover, the de Castetjau steps a n d the derivative steps c o m m u t e [Farin '79], i.e., it is only
i m p o r t a n t to p e r f o r m r steps with respect to a a n d n - r steps with respect to r, b u t they m a y
be carried out in any order.
We shall later need the special case of cross-boundary-derivatives: Let "r° = (0, r 2, r3) be
barycentric coordinates along the edge "r1 = 0, a n d a not parallel to that edge (for the notation,
see end of Section 1.3). T h e n

n! E br(°t)B•°r('r°) " (2.11)


Drb"(r°)= ( n - r ) ! [7~l=n_r

This expression depends only o n the first r + 1 rows of Brzier ordinates parallel to the edge
u n d e r consideration. In that respect it is very similar to the univariate case, and it will be used
to derive conditions for the differentiability between adjacent patches (see Section 2.3).
Mixed directional derivatives m a y be obtained f r o m a generalization of T h e o r e m 2.4: let a
a n d fl be two i n d e p e n d e n t directions. T h e n

D r+S~,, n! y" Y" b~+r-s(r)B~,(a)B~(fl). (2.12)


(.-r-s)! I l=r t l=s

T h e c o r r e s p o n d i n g generalization of Corollary 2.5 can be written as

D r+Ss,, n! E E r,s (Ol, [~)n;+;-S(T). (2.13)


,#~, ( , r ) = ( n - r - s ) i X l = r l u l = s bx+~'
T h e b e r m bx+~,(a,
r,~ r ) in (2.13) indicates that we have to p e r f o r m r de Casteljau steps with
respect to a, then s steps with respect to ft. Finally one has to p e r f o r m n - r - s steps with
respect to "r. Of course all these steps c o m m u t e , i.e., they m a y be carried out in any order.
A n i m p o r t a n t special case is given by mixed derivatives at the vertices of ,Y'. T h e y d e p e n d
only on the subnet of order r + s located at that vertex.
Let us briefly consider the simple case r = s = 1: the corresponding mixed derivatives are
called twists. If we restrict a a n d fl to be in the direction of the edges, we have edge twists. F o r
the case a = e 1 - c 3, fl = e 2 t[3, we obtain
-

b~a(a, fl)=Aa'l"°b~,; I v [ = n - 2 , (2.14)


where
A',°,°b=b~+,,-bu+,, and A°'L°b,=b,+,=-bu+,3; It~l=n-1.
G. Farin / Triangular Bernstein- Bbzier patches 95

bo,2,o

Fig. 2.2. Twists: the arrow (a constant multiple of the twist) indicates the local deviation of a quadratic control net
from a plane (shaded).Note that two of the ordinates do not affect the twist at all.

Fig. 2.2 illustrates the geometric meaning of (2.14): each coefficient gives the deviation
Aa'a'°b~ of the quadrilateral (b~_~,,+,:, b~+,:+,3, b~+,,+,3, b~+2,3 ) from a plane. Similar expres-
sions hold for twists with respect to the other edges (see also Sections 2.3 and 3).
We conclude this section by giving a simple expression for partial derivatives:

Lemma 2.6.

3Ub"(,r) = (n_r)!b~-r(,r);
n~
It~l=r. (2.15)

Proof.
n~ h~ t~ B n - r [ ,r ~
3Ub"('r) = ( n _ r ) ! I =nux x-u~ J

n~
E bx+~o~-r("r)
(n - r)! IXl = n - - r
n~
= (n_r)!b~-r(,r).
As a simple consequence we get the following identity:

Corollary 2.7.
3~b"(,r)=b.; Ittl = n . (2.16)

2.3. Domain transformation

Let ,9- be a triangle with vertices T a, T2, T3 and let 3- be an adjacent triangle with vertices
2F1, T2, T3. We denote barycentric coordinates in ~- by ,r, those in if" by ÷. Triangle o~" is not
oriented counterclockwise, but for our purposes that is immaterial. The straight line T2, T3 is
common to both triangles and corresponds to barycentric coordinates ,r° = (0, ,r2, ,r3) and to
96 G. Farin / Triangular Bernstein- Bkzier patches

,~0= (0, ÷2, "?3). Let 7"1 have barycentric coordinates o with respect to Y', thus "q = ÷~0~,
12 = ÷102 + "~2, % = "~103+ "~3, where o 1 4= 0.
A polynomial b"('r) that is defined in terms of barycentric coordinates of ,Y- is of course
defined over the whole plane, in particular also over ~'. We are interested in the B4zier
ordinates that describe b" as a B e r n s t e i n - B & i e r polynomial over ~-. They are defined by
b~('r) = b~('~), more explicitly:
bxB~(~-) = Y'~ bxB~,(~ ). (2.17)
I;~l = n 1;~1 = n

Note that since T and T share a c o m m o n edge, we immediately obtain


bxo= bx0; I~,°1 =n, (2.18)
where X° = (0, X 2, X 3)-
In order to determine the remaining bx, let us consider a direction not parallel to T2, T3 and
let us take directional derivatives up to order r with respect to it. This direction may be
expressed as a with respect to triangle 3 - and as & with respect to triangle 3-. Hence (2.11)
becomes
~_, b~o(a)B~oS('r°) = ~,, b~o(a) B~0-s(4°); s=0,...,r; O_~<r_~<n.
IX°[ = n - s IX°l = n - s
(2.19)

For r = 0, (2.19) yields (2.18). Since "r° = ,~0, comparing coefficients in (2.19) gives
b~,o(a)=b[o(k); s = 0 . . . . ,r; O<r<n. (2.20)
Thus the two polynomials bxo and agree in all derivatives up to order r:
D~b~xo(r)=DSbSxo(~); s = 0 , . . . , r ; O<_r<_n,
and hence they are equal:
b~,0( I " ) = b~,0( ~ ) ; O<r<n.
The last equation must also hold for "r = o, i.e., for "~= e1. This yields

Theorem 2.8 [Farin '80]. Let b n (with Bbzier ordinates bx) be defined over ~Y-= ( T1, T2, T3 } and
let b" (with Bbzier ordinates bx)~ be defined over ~-= ( I'1, T2, T3 }.
The two polynomials b ~ and b ~ are identical if and only if
bxr=b~o(O); O<r<n, (2.21)
where Xr = (r, X2, X3); [ Xr[ = n, and o are the barycentric coordinates of T1 with respect to oq'.

Theorem 2.8 provides an algorithm to construct the desired bx from the given bx: Simply
evaluate b" at "r = o by the de Casteljau algorithm and collect the 'rightmost' (referring to Fig.
2.7) intermediate coefficients from each step. Of course one can obtain the bx in the same way
from the bx-
A warning: T h e o r e m 2.8 does not provide a stable algorithm: If o is outside 37-, then (2.21)
does not use convex combinations any more, rather it is a formula using repeated extrapolation,
suffering from the well-known numerical problems inherent in such schemes.
We have considered domain triangles Y and J - that share a c o m m o n edge. This restriction
can be dropped, and ,~- may be completely independent of ,Y-. If "ri are the vertices of d - as
expressed in terms of barycentric coordinates of ,Y-, the bx are found by simultaneously
performing the de Casteljau algorithms for the "ri: one defines b~('r 1, 1"2, "r3); I X I = n - I~1 in
G. Farin / Triangular Bernstein- Bbzier patches 97

Fig. 2.3. Subdivision: The intermediate de


Casteljau ordinates from Fig. 2.1 generate
control nets for the subdivided patch. The
ordinates for the subnet corresponding to
the edge rl = 0 are shown as full circles.

complete analogy to the b~+x


r,s from the definition of mixed partials (2.13). Thus b Kx is obtained
by applying ~i de Casteljau steps with respect to ~-'. The desired coefficients bx are given by

b =n.

It is again immaterial in which order the necessary de Casteljau steps are carried out. This
approach is detailed in [Goldman '83] and illustrated in [Boehm, Farin '83]. An explicit formula
for the bx is in [Chang, Davis '84].
Theorem 2.8 has two important applications:

Corollary 2.9 (subdivision). The intermediate Bbzier ordinates b~x, I~l = n - r are the Bbzier
ordinates o f the subpatches defined over the three subtriangles (ra, T3, T1}, (T1, T1, T2),
(7"1, r2, T3).

Fig. 2.3 illustrates this subdivision procedure for the common case of 7"1 being inside the
triangle.
A special case arises if 7"1 is on the edge (T2, 7"3). The straight line (T a, 7"1) is called a 'radial'
line. The restriction of b n to that line is a univariate B6zier polynomial of degree n, and its
B6zier ordinates can be de~rmined in a particularly simple way: Interpret all rows of B6zier
ordinates parallel to (T2, T3) as B6zier ordinates of curves of degrees 0, 1,..., n. Evaluate each
curve at t = 0 3. The values thus obtained are the desired B6zier ordinates; see Fig. 2.4 for an
illustration.

Fig. 2.4. Radial curves: the solid circles


denote the B6zier points of a radial curve
emanating from b 3(c 2 ).
98 G. Farin / Triangular Bernstein- Bkzier patches

Fig. 2.5. Cl-conditions: the indicated pairs of subtriangles must be coplanar.

Corollary 2.10 (C r conditions). Let b" be defined over T1, T2, T3 and let c" be defined over T 1, T2,
T 3. Also let T1 have barycentric coordinates o with respect to the first triangle. A necessary and
sufficient condition for b ~ and c n to be C r across the common boundary is

cxs=b~xo(o); s=0,1,...,r. (2.22)

This corollary is a generalization of the analogous result for B6zier curves, due to E. St~irk
[St~irk '76].
For the case r = 1, Corollary 2.10 says that the bold pairs of triangles in Fig. 2.5 must be
coplanar. For the case r = 2, we may rewrite (2.22) in a more symmetric way:

dxl "=clx,(p) = blx,(o),

where p denotes the barycentric coordinates of T1 with respect to the triangle (T1, T2, T3 )-
Thus the existence of the auxiliary points d x, guarantees C 2 continuity across the common edge
of two patches; see Fig. 2.6 for an illustration. The points dxl bear a close resemblance to the
auxiliary points that guarantee C 2 continuity between adjacent univariate Brzier curves (see
[Boehm, Farin, K a h m a n n '83]. These auxiliary points can be interpreted as the B spline vertices
of cubic C 2 spline curves, but it is not known if the d x, could be utilized for the definition of
C 2 splines over arbitrary triangulations.

all,O,1

/_

?.
/ JJ
"----.A-
Fig. 2.6. C2-conditions: The points indicated by solid circles must be the same when constructed from either control
net. The indicated pairs of triangles are coplanar.
G. Farin / Triangular Bernstein - Bbzier patches 99

~\ / //
,

~ =-3/2

Fig. 2.7a. Domain transformation, exam-


ple: the geometry of the domain triangles,
T1 7"2 characterized by ~ = ( - 2 , ~,
~_).3
3

99

Fig. 2.7b. Domain transformation, exam-


ple: the original ordinates together with
the successively generated intermediate
ordinates. The 'rightmost' ordinates b~,o
//o o 4 are shown boldface.

[9A
~ 4 5 ~ 99
33
?~0 1 8 /
b~ 0
/ \ lO
Fig. 2.7c. Domain transformation, exam-
0 0 12\ /
/ ple: the original ordinates b x (defined
over g-) together with the ordinates bx
0 0 " 4 0 defining the same surface over g-.

We finish this section by giving an example of how to construct the Brzier ordinates of a
patch that is C 3 with respect to a given patch: this is done in Fig. 2.7.

2. 4. Alternative surface forms

It may sometimes be necessary to convert a patch in Bernstein-Brzier form to a different


polynomial representation. This could arise if some of the subsequently developed interpolants
need to be rewritten in order to fit into some specific software environment.
100 G. Farin / Triangular Bernstein- Bbzier patches

One of the standard forms for a bivariate polynomial is the expansion in terms of
monomials xiyJ:
f(x, y)= }--'. ai,jxiy j, (2.23)
i+j<_n
which can be rewritten as a Taylor expansion:
1 ~i+j
f(x,y)= E i?j! OyJ f(O'O)xiyj" (2.24)
i+j<n ~xi

Two remarks: (1) The partials appearing in (2.24) are directional derivatives with respect to
the directions (1, 0) and (0, 1). (2) Eq. (2.24) is also valid if the x- and y-axes are not
orthogonal.
It is now easy to write a Bernstein-B6zier polynomial b"('r) in monomial form. Define
a = ~ l _~3, f l = c 2 _ ¢ 3 . Then by the above two remarks (2.24) may be applied to
Bernstein-B4zier patches:

b'(~)= E ,~,,O:,Tb'('3)~J • (2.25)


i+j<n L j
The mixed derivatives appearing in (2.25) may be computed using the de Casteljau algorithm,
as was done in (2.13):
l"~i+Jl'~n[~3'~ =
n! Z Z i,j
bx+~,(a, fl)B~,;;-J(,3).
~'~'#~" ~ I ( n - i - j ) ! iXl= i it, l=j
Due to the evaluation at c 3, this expression may be simplified considerably, and one obtains
n!
ai.j= ( n _ i _jl! b;6Jo,,,-i-j)( a, fl ).
Since and fl are parallel to edges, each b[~,,,_,_j)(a, r) can be interpreted as an iterated
mixed difference:
6[6Jo,,_g_j) ( a, r) = AiJ'°bo,o,,_,_j, (2.26)
where
Al'°'°b~, = b~,+,l- b,+,, and a°'a'°b• = bu+,=- b~,+d,
see also Fig. 2.2.
Because of their relationship to intermediate de Casteljau points, the a,,j can conveniently
be computed recursively: to compute b[bJo,,-i-j)(a, fl), apply the de Casteljau algorithm i
times with respect to a and j times with respect to ft. These steps can be carried out in any
order. Each such de Casteljau step corresponds to a difference step; the possible combinations
of difference steps are illustrated in Fig. 2.8.
The above monomial expansion amounts to the elimination of the third barycentric
coordinate r 3 from the standard expression for b'(r). Sometimes a different monomial
expansion may be desired: the expression of b'(r) in terms of the global coordinates x, y, i.e.,
an expression of the form (2.23). In order to do that, one simply expresses the x- and
y-directions in terms of the barycentric coordinates of the domain triangle ~Y': the x-direction
corresponds to the difference ~ of the barycentric coordinates of (1, 0) and (0, 0), and the
y-direction corresponds to the barycentric difference 77 of (0, 1) and (0, 0). With these
definitions, the monomial expansion of b" becomes:

b'('r)= • ;~;vD~Jb"(,3)(x-x3)'(y-y3) j, (2.27)


i+j<.n , . j
where (x 3, Y3) are the (x, y)-eoordinates of T3, corresponding to c 3.
G. Farin / Triangular Bernstein - B~zier patches 101

Fig. 2.8. Taylor expansion: the differences


(indicated by arrows) that determine aa. z
= Al'Z'°b0.0.0. Three different 'paths' are
possible for the evaluation of the iterated
00,0,3 difference.

The derivatives appearing in (2.27) can again be computed using the de Casteljau algorithm;
of course they cannot be computed using simple differencing any more.
The conversion to monomial form may be useful if a large number of points is to be
evaluated on the patch: a monomial (2.23) can be evaluated by using nested multiplication, and
the number of necessary operations is of order n 2. This compared favorably with'the order n 3
computation count for the de Casteljau algorithm.
Some remarks may be useful concerning the choice of the evaluation algorithm: (1) The
conversion from B6zier to monomial form makes use of nonconvex combinations, and is thus
not very stable numerically. (2) The de Casteljau algorithm provides the tangent plane together
with the point of evaluation, and this is very useful for algorithms such as shading or plane
intersections.
Recently Schumaker and Volk [Schumaker, Volk '86] have addressed the problem of
alternative representations of Bernstein-B6zier patches.
We finish this section by giving a special form for quadratic patches. A quadratic
Bernstein-B6zier polynomial bZ('r) can be written as a quadratic form:

b2,o,o bl,],o bl,o.1 ,i-

b1,1,o bo,2,o bo,1,1 r2 (2.28)


bl,o,1 bo,l,] bo.o.2 r3

Fig. 2.9. C 1 piecewise cubic surfaces: an example surface. A regular triangulation was chosen in order to produce C 1
isoparametric curves.

E~:~otheek
"(mtrum vcKx W i s ~ ' ~ ~ ~,,~ormel~..,~
,~mem~am
102 G. Farin / Triangular Bernstein- Bbzier patches

Since the barycentric coordinates 'r~ are related to the (x, y)-coordinates by a linear transfor-
mation, it is clear that (2.28) represents a quadric surface, more specifically, a paraboloid.
We conclude Section 2 with an illustration of a piecewise cubic C a surface, see Fig. 2.9.

3. Shape considerations

3.1. Convexity

A function f is called convex over the domain triangle 3 - if at any point "r, every second
directional derivative D~f(~) is nonnegative:

D2f(¢) > 0 all a, all "r. (3.1a)

This definition is only meaningful for functions f ~ C 2 ( j - ) ; for functions that are only
continuous, one defines

f(½1.1 + ½,/.2) _<<½f(~.l) + ½f(~.2); all ¢a, ,r 2 ~ G - (3.1b)

as the condition defining convexity. For C = functions, both conditions are equivalent.
We shall rewrite (3.1a) in a more convenient form and to that end we introduce the notion of
edge derivatives D i. They are directional derivatives in the directions parallel to the edges 3 i,
where 81 = ~3 _ e2, 32 = ~1 _ (3, 33 = c2 _ el:

D i :----Da,.

Since one can write any direction a as a linear combination of the edge directions 3':
3
Ot = E fl,3'
i=1

where Efli = 0 (e.g. fll = (a3 - a2)/3, r2 = (eta - a3)/3, 133 = (a2 - a l ) / 3 ) , we can write
3
De = E BID,.
i=l

Note that the representation of a in terms of the 3 ~ is not unique.


Edge twists D,2,j= D 2 V defined by (2.14), can be expressed as

D2 ( Df if i = j , (3.2)
~'J := - D~Dj if i e j .

The minus sign in this definition selects the directions pointing from a vertex to the other
vertices. The derivatives D~ and D,22 can be obtained from the Bdzier ordinates by a
differencing process, as outlined in Section 2.4 and illustrated in Figs. 2.2 and 2.8.
N o w any second directional derivative with respect to a direction a may be written as
3 3
DE= E E flifljD~j. (3.3)
i=1 j = l

The D~j are the elements of the Hessian, which is symmetric: D/~ = D~,. Just as D 1 + D 2 + D 3
-- 0, the elements of the Hessian are not independent of each other:
G. Farin / Triangular Bernstein-Bkzierpatches 103

Lemma 3.1. For each row, the diagonal elements of the Hessian are the sum of the off-diagonal
elements:
D2i,i = D2i,j + D~k, i, j, k all different. (3.4)

Proof. We prove the case i = 1:


D 1,3
2 = _ Dg,,83 = -D~,,(_~,_82
2 ) = D 1,1
2 _ D 1,2
2 "

Lemma 3.1 has an important consequence:

Theorem 3.2. For a C 2 function f(T) to be convex over the domain triangle ~£-, it is sufficient that
all edge twists be nonnegative, i.e.
D 2 j f ( r ) >__O, i--/:j, ":~.Y-. (3.5)

Proof. Lemma 3.1 together with (3.5) implies weak diagonal dominance of the Hessian, thus the
quadratic form (3.3) is nonnegative for any a, and convexity of f is assured.

We are interested in the special case where f is a Bernstein-Brzier polynomial b n. Equation


(2.14) provides a formula for edge twists. If all coefficients of the twist surface are nonnegative,
then it is nonnegative itself:

Corollary 3.3. A sufficient condition for b n to be convex is

(b,+.~+.2-b,+.2+.3)-(b,+.'+.3-b,+2.31>!}
(b,+.2+.3-b,+.~+.3)-(b~+.a+.2 b,+2.~)> I~1 = n - 2 . (3.6)
(b,+.'+.~- b,+.'+.2) - (b,+.2+.3- b,+2.2) >

This special case is due to [Chang, Davis '84]; the above proof, however, is more general. A
geometric interpretation of Corollary 3.3 is that all subnets of order two of the control net form
convex piecewise linear surfaces (with a suitable definition of convexity). A sharper condition is
given in [Chang, Feng '85].

3.2. The variation diminishing property

Brzier curves possess the variation diminishing property: no straight line (or plane) has more
intersections with the curve than with the defining polygon. For a proof, see [Lane, Riesenfeld
'82]. A possible way to extend this definition to triangular patches is as follows: count the
number of closed intersection curves of the control net with any plane and compare it to the
number of closed intersection curves of the surface with the same plane. Under such a
definition, Bernstein-B4zier triangular patches do not possess the variation diminishing prop-
erty, as counterexamples by [Prautzsch '85] show. Another possibility would be to count the
number of local extrema of both the net and the surface: again, under this definition triangular
patches do not possess the variation diminishing property.
It is possible, however, to define the concept of variation for patches defined over triangles
in terms of some set of suitable functionals. With these proper definitions, Bernstein-B6zier
patches over triangles do possess a variation diminishing property [Chang, Hoschek '85],
[Goodman '85], [Chang, Feng '85].
104 G. Farin / Triangular Bernstein - Bkzier patches

II. APPLICATIONS

4. Hermite interpolants

In this section we shall discuss interpolants that are defined over a triangle 7 and
interpolate to position and derivative information at the vertices and across edges. This
information could either come from some known primitive function f(r), or it could be given
in the form of discrete measurements (typically function and gradient values). Such inter-
polants are abundant in the finite element literature [Strang, Fix ‘731. For the purposes of a
finite element solver, no explicit form of the interpolant is necessary, however, and so some of
the presented interpolants (e.g. Q2,, Q,,) are schemes known from finite elements and
rewritten in a form suitable for CAGD (see, e.g., [Barnhill, Farin ‘811, [Grieger ‘851, [Sablonniere
‘851.)

4.1. The Co nine parameter interpolant

The nine given data are position and gradient at each triangle vertex, i.e.
D,r,$f(El); r+s<l
with (Y= e2 - cl, /3 = c3 - c1 and analogous data for the remaining two vertices e2, e3. The
computation of the nine boundary BCzier ordinates reduces to univariate cubic Hermite
interpolation to each boundary edge. We obtain
b 3.0.0 =fGlL b,.,,, = :Wt c1 > + b3,0,0, (4-l)
and the remaining Bezier ordinates by symmetry.
The only Bezier ordinate not found this way is b,,,,,. It is independent of the prescribed data
and can be assigned any arbitrary value. A reasonable choice is to select b,,,,, such that
quadratic precision of the interpolant is maintained, i.e., if the nine prescribed data were read
off from a quadratic, then the interpolant would reproduce this quadratic. If this quadratic was
written as a cubic (by the process of degree elevation, see Section l), the coefficient b,,,,, could
be expressed as
b 1.1.1 = w2.0.1 + h.o.2 + bo.2.1 + bo,1.2 + b2,l.O + bL2.0)

- i (b3,0,0 + b0,3,0 + bo,o,3 > 9 (4.2)

thus choosing b,,,,, according to (4.2) ensures quadratic precision of the interpolant. P. Alfeld
[Alfeld ‘851 has point out that other choices of b,.,,, also ensure quadratic precision; it is an
open question if any of these choices can be sensibly labeled ‘best’. In this context it is
interesting to point out that experimental results obtained by B. Piper suggest that the concept
of quadratic precision is totally inadequate when it comes to parametric interpolants, see
Section 8 and [Piper ‘861.
In a situation where data are prescribed at several triangles in a triangulation, the above
interpolant has a serious drawbacks: it requires C’ data, but the produced overall surface is
only Co. This is easily seen from the fact that the value of b,,l,, depends on data prescribed
around the whole triangle instead of data pertaining only to one edge.

4.2. C’ quintic interpolants

In order to produce overall C’ surfaces defined over a triangulation, one has to prescribe
more data, namely up to second derivative data at the vertices and a cross-boundary derivative
G. Farin / Triangular Bernstein-Bbzier patches 105

at each edge midpoint. The resulting interpolant will now be at least quintic (see [Barnhill,
Farin '82]). The prescribed vertex data are:
D[~,#U(, ),
r,s ] .
r+s<2
with a = ~ 2 ca, fl = ~3_ cl and analogous data for the remaining two vertices. In order to
make the interpolant unique, one has to prescribe three more pieces of information, and one
standard choice is the prescription of cross-boundary derivatives D r at the edge midpoints:

where y is a direction not parallel to the edge [c 2, e3], and analogous data for the remaining
two edges. Thus we have 21 pieces of information for the quintic interpolant, which is
determined by 21 coefficients. The given data specify these coefficients uniquely, as follows
from the subsequent construction of the interpolant, which is also known as Q21- (See Fig. 4.1
for an illustration.)
The B~zier points of the quintic patch pertaining to data at vertex eI are obtained from

bs,o,o = f ( ¢l ),
b4"'° = ½D~U(el) + 65"0"0' (4.3)
b320-,, - zaD[,I('I
2 ' ) + 2b4,a,o - b,,o,o,
b 3 1 _ , _, z, Dd,,#f(
'2 1) q_ 64,1,0 q_ 64,0,1 _ 65,0,o"
and analogously for the remaining two vertices.
The cross-boundary edge derivatives can be used to determine the remaining B4zier
ordinates: for edge [c 2, c3], we obtain from (2.11)

Dr/
(,2+,3) =s E
(
4o ,2 +,3
)
IX°l=4 "2" "
This expression contains the unknown Brzier ordinate bl,2,2, for which we can now solve:

b122
,, = y--~
1 1 D~f ( C2 ~q'- ~3 ) bax°(~')B4°( -¢2 -4-
-
E 2 C3 ) - T2b°'2'2 - 7360'2'31 "
IX°l=4
X°=~(0,2,2)
(4.4)
Eq. (4.4) is only meaningful if Y1 4= 0, which is equivalent to saying that 7 is not parallel to edge
all.

bI,2,2 ° o b ~ ~ ~

Fig. 4.1. The interpolant Q21: the coeffi-


o o"' "/ o 65,0,0 cients that are determined by equations
(4.3) and (4.4). The remainingones follow
fl from symmetry.
106 G. Farin / Triangular Bernstein- Bbzier patches

The directions 3, are usually chosen to be perpendicular to edges; thus for edge [C 2, •3] we
obtain
7=(1,74, -1-71),
where
(V2-- r3)T(rl -- r2)
71 = 17"2_7"3I
The expressions for cross-boundary derivatives at the other two edges are completely analo-
gous.
Often the cross-boundary derivative is not available in a specific problem. In this case one
often makes use of condensation of parameters: The normal cross-boundary derivative of any
edge, evaluated along that edge, is a univariate quartic polynomial. If we require all three of
these polynomials to be cubic instead, we have three (linear) conditions from which we can
compute the three Brzier ordinates not determined by the vertex data: the coefficients of the
quartic cross-boundary derivative are the five b~0. If a quartic is actually cubic, the fourth
difference of its Brzier ordinates must vanish:
b 0,0,4
1 (y)-4bloa,3(y)+6b~o,2,2(Y)-4blo,3,a(y)+b~
, 0,4,0 (y) =0. (4.5)
The term b 1, 2, 2 is defined as b0,2,2
a = 71bl,2,2 + 72b0,3,2 + Y3bo,2,3, and (4.5) can easily be solved for
it.
If the same process is applied to all triangles in the triangulation, it is clear that all normal
cross-boundary derivatives are continuous. Since only 18 pieces of information are prescribed
per triangle this way, the resulting condensed interpolant is called Q~8 in the literature (see
[Barnhill, Farin '8,2]). !
The interpolants consisting of piecewise quintic Q~8 patches are local: if data are changed at
only one data point, the interpolant is only affected over those triangles that have that data
point as a vertex. In setting all data equal to zero at all but one data point, one may derive
cardinal functions for the interpolation problem. These are identically zero except over the
triangles pertaining to the data point under consideration. These cardinal functions are called
v-splines (for vertex-splines) by [Chui '85].

4. 3. The general case

In this section we shall discuss piecewise polynomial interpolants defined over a triangula-
tion that generate C r surfaces. Each interpolant is local, i.e., it is determined by data (linear or
nonlinear functionals) that are defined over one triangle only. These local interpolants must be
of a polynomial degree that depends on r:

Theorem 5.1. A local piecewise polynomial interpolant that interpolates to all derivatives up to
order r of some primitive function f at the vertices of a triangulation and that is globally r times
differentiable must be of degree n > 4r + 1.

Proof. We refer to Fig. 4.2, which illustrates the case r = 3. The interpolation requirement
determines the degree r subnets at the triangle vertices. Sine we require C r continuity across
the boundaries, we have to specify all r + 1 rows of Brzier ordinates parallel to the edges. They
are determined by cross-boundary derivatives that are also imposed on the neighboring
triangles, thus enforcing C r continuity. (These cross-boundary derivatives do not necessarily
have to be those of f, since the interpolant only has to agree with f and its derivatives at the
triangle vertices.) If no special care is taken, however, the ordinates in the shaded regions (Fig.
4.2) will be determined, namely those B6zier ordinates will be 'determined' by conflicting (since
G. Farin / Triangular Bernstein- Bkzier patches 107

Fig. 4.2. Hermite interpolation: For the


case n = 13, the full circles denote
ordinates that can be directly inferred
from the given data. In order for the
ordinates in the shaded 'upside down'
subnets not to be overdetermined, full C 5
data have to be prescribed at the vertices.
The three center ordinates (marked by
open circles) may be assigned arbitrarily.

independent) cross-boundary derivatives. In order to specify these Brzier ordinates unambigu-


ously, all derivatives up to order 2r must be specified at each vertex. (They do not necessarily
have to come from f, e.g., they could be set to zero.) In order for this information to be
consistent (e.g. in order not to overdetermine the boundary curves), the polynomial degree of
the interpolant must be at least 4r + 1.
Hermite polynomials with n = 4r + 1 where first considered by [Zenisek '70]. We note that
the derivative information specified at the vertices and across the edges is in general not
sufficient to determine the interpolant uniquely: There are r ( r - 1)/2 Brzier ordinates left in
the center region of the control net (see Fig. 4.2). These do not influence the smoothness of the
global surface, but should be chosen carefully to yield 'good' local interpolants: if no additional
information about the primitive function is available, the remaining B4zier ordinates could e.g.
be determined such that the polynomial precision of the interpolant be as high as possible.
If not enough cross-boundary derivative information is available to specify the necessary
r + 1 rows of Brzier ordinates, the process of condensation of parameters can be applied, this
time not only to the first cross-boundary derivative, but to all up to order r.
A special case of the above interpolants is the quintic Q21 (resp. Q~s) from the preceding
section. The case r = 2, yielding nonics, is discussed in [Whelan '85], [Rescorla '85], [Sablonnirre
'85].

5. Split triangle interpolants

The Hermite interpolants that were discussed in the previous section all share a serious flaw:
in order to obtain a composite surface of some desired continuity class, the user has to provide
derivative data of higher order than the desired order of continuity. Thus we have to provide all
second derivatives at the vertices of a triangle to build the interpolants Q21 or Q18, but we only
achieve C 1 continuity of the overall surface. Obviously this situation is uneconomical.
The goal is thus to devise interpolants that require no derivative information of higher order
than the order of continuity of the resulting interpolant. In the context of triangular inter-
polants, the key to the solution is to consider interpolants that are piecewisepolynomial over
108 G. Farin / Triangular Bernstein - Bbzier patches

each triangle. Every triangle in the triangulation of the data points (in this context also called
'macro-triangle') is sprit into several 'mini-triangles'.
None of the following interpolants was originally developed in terms of Bernstein-B6zier
patches. The use of this technique considerably simplifies the derivation of such interpolants. In
fact, the easy construction of new interpolants is one of the m a i n strengthes of this technique.

5.1. The C 1 Clough- Tocher interpolant

This interpolant is conceptually the simplest of all split-triangle interpolants, and it has been
known in the finite element literature for some time [Strang, Fix '73], [Percell '76]. It is
characterized by the 'simplest' symmetric split of a triangle: each vertex is joined to the
centroid; thus a macro-triangle is split into three mini-triangles. (Any other interior point other
than the centroid would do; the centroid is chosen for symmetry reasons.)
The first order data that this interpolant requires are position and gradient value at the
vertices of the macro-triangle plus some cross-boundary derivative at the midpoint of each
edge. (Note that this is a subset of the data for Q21 without the undesirable second order
items.) The prescribed cross-boundary derivative could be in any direction not parallel to its
edge; but since adjacent macro-triangles should share the same data along the common edge, it
is most natural to choose the direction perpendicular to that edge. We then speak of a cross
boundary normal derivative.
In summary, one has twelve data per macro-triangle. It is easily seen that interpolation to
this data produces a globally C a surface if cubic polynomials are employed over each
mini-triangle.
We shall now turn to the description of the actual interpolant; we refer to Fig. 5.1. The nine
B6zier ordinates of the three boundary curves (marked by full circles) are found exactly as for
the nine-parameter interpolant, see Section 5.1. The next 'layer' of ordinates, marked by full
circles and triangles, is determined if we enforce interpolation to the cross-boundary deriva-
tives. The cross-boundary derivative, evaluated along an edge, is a univariate quadratic
polynomial. It can be written as a univariate B6zier polynomial with three coefficients, the first
and last one being determined by the gradients at the vertices, the center one as well by the
cross-boundary derivative at the midpoints of that edge. The formulas are completely analo-
gous to (4.4) (see [Barnhill, Farin '81]).
We are still left with the task of specifying the four remaining ordinates. Since the
interpolant must be C a over each macrotriangle, those ordinates must satisfy the Ca-conditions

from given vertex data


from given cross-boundary derivative
c e n t r o i d s of s u r r o u n d i n g • , •
. c e n t r o i d of s u r r o u n d i n g o

Fig. 5.1. The Clough-Tocher subnets: The macro-triangle is split into three mini-triangles and a cubic is built over
each.
G. Farin / Triangular Bernstein- B&ier patches 109

(2.22). Thus each of the three outer ordinates of the four ones under consideration must be the
average of the adjacent three ordinates that have already been determined. Finally, the center
ordinate must be the symmetric average of the three ones just found.
In many applications, we will not be given the required cross-boundary derivatives at the
edge midpoints. The most obvious method to estimate this derivative is again condensation of
parameters: For each edge of the macro-triangle, the cross-boundary derivatives can be
computed at its two endpoints. The midpoint cross-boundary derivative is simply set to be the
average of those values.
Some slightly more involved methods to estimate the midpoint cross-boundary derivative
consider two adjacent macro-triangles at a time. We can construct the nine-parameter inter-
polant over each triangle and compute their respective midpoint cross-boundary derivatives.
They will in general not agree; one way to specify a derivative that is common to both triangles
is as follows: determine the common midpoint cross-boundary derivative such that it deviates
as little as possible from those of the nine-parameter interpolants. This leads to a least squares
problem that can be solved explicitly [Farin '83]. Similarly, one may determine the midpoint
cross-boundary derivative from the requirement that the C 2 discontinuity between both patches
be as small as possible [Farin '85]. Both methods yield surfaces that are smoother than those
obtained from standard condensation of parameters. Also, these methods can easily be carried
over to the parametric case, where the concept of normal cross-boundary derivatives becomes
meaningless, see Section 8.
We conclude this section with a somewhat surprising result (recall that the Clough-Tocher
interpolant is designed to be C1):

Theorem 5.1. The Clough-Tocher interpolant is C 2 at the centroid of the macro-triangle.

For a proof of this statement, the following lemma is needed:

Lemma 5.2. C 1 piecewise quadratics over a Clough-Tocher triangle split are also C a, i.e., they are
one global quadratic.

Proof. Consider Fig. 5.2. Suppose the six solid Brzier ordinates were arbitrarily chosen. Then
the Brzier ordinates marked by open circles are determined by the C 1 conditions between
subpatches. But then the ordinate marked by a square is also determined by the C 1 conditions.
Hence the three C 1 quadratics are uniquely determined by the six solid Brzier ordinates. Since
any three C 1 quadratics can be constructed this way, it follows that the dimension of C x

Fig. 5.2. C 1 piecewise quadratics: If the


ordinates mrked by solid circles are arbi-
trarily specified, the remaining ones are
determined by the C 1 condition: the
ordinates marked by open circles lie in
planes already determined by three solid
ordinates. The ordinate marked by a
square has to lie in the plane defined by
the three open circles.
110 G. Farin / TriangularBernstein- Bbzierpatches

piecewise quadratics over the Clough-Tocher split is six, which equals the dimension of the
space of global quadratics. Since C 1 piecewise quadratics are a superset of the global ones, the
lemma is proved.

Returning to the Proof of Theorem 5.1, one observes that the Clough-Tocher control net (see
Fig. 5.1) has a piecewise quadratic subnet obtained by 'stripping away' the control net edges.
The remaining subnet is of the form of Fig, 5.2 and determines all derivatives at the centroid.
Since this piecewise quadratic subnet is C a by construction of the interpolant, it represents a
global quadratic according to the above lemma. Thus all derivatives of order two at the
centroid are continuous, which completes the proof of Theorem 5.1.

5.2. Limitations of the Clough-Tocher split

The data stencil for the C 1 Clough-Tocher interpolant can be characterized as follows: (a)
prescribe enough data at the (macro-) triangle vertices to ensure C 1 continuity there; (b) also
prescribe enough cross-boundary derivative information to uniquely determine the (C a) cross-
boundary derivative.
A natural generalization would be to replace C 1 by C 2 in the above data stencil description
and then to proceed to construct a C 2 interpolant over the Clough-Tocher split. It turns out
however, that the resulting interpolant would be overdeterrnined [Farin '80].
In order to see this, we refer to Fig. 5.3, which shows part of the Brzier net of an alleged C 2
C l o u g h - T o c h e r interpolant. The polynomials over each mini-triangle are at least quintic now.
In order to satisfy the requirements of the generalized steps (a) and (b) from above, one has to
generate enough C 2 information to determine all ordinates marked by full circles or squares.
We note that the ones marked by squares are determined independently by C 2 cross-boundary
derivatives that have to be prescribed at the two shown macro-triangle edges.
N o w consider the two quadratic subnets that are shaded in Fig. 5.3. By C 2 continuity, they
have to represent the same quadratic polynomial (see the proof of Theorem 2.8). A quadratic is

Fig. 5.3. An overdeterminedC 2 interpolant: With only C2 data prescribed at the vertices, the ordinates denoted by
squares are overdetermined.
G. Farin / Triangular Bernstein - B&ier patches 111

determined by six independent pieces of information. Counting the data that determine the two
shaded quadratics, one finds five ordinates on the edges parallel to the macro-triangle edges
plus the two ordinates marked by squares. Thus the proposed interpolation problem would
result in finding a quadratic determined by seven independent pieces of information, which is
clearly overdetermined.
In order to formulate split triangle C 2 interpolants, one must therefore (i) prescribe at least
C 3 data at the vertices with a Clough-Tocher split or (ii) use splits with at least three
mini-triangles meeting at the macro-triangle vertices.
A scheme corresponding to (i) has been studied by [Sablonnirre '85]: he considers C 2
piecewise seventh degree patches defined over the Clough-Tocher split with C 3 data at the
macro-triangle vertices. A scheme corresponding to (ii) has been considered by [Alfeld '84b]: if
the Clough-Tocher split is iterated, i.e., each mini-triangle resulting from the Clough-Tocher
split is again subjected to a Clough-Tocher split, enough degrees of freedom exist to construct
a C 2 piecewise quintic over this split. Although a solution to the given problem, the resulting
surfaces often show unwanted oscillations.
5.3. The C1 Powell-Sabin interpolants
These interpolants produce C a piecewise quadratic interpolants to C 1 data at the vertices of
a triangulated data set [Powell, Sabin '77]. Each macro-triangle is split into several mini
triangles; their number is determined by the macro-triangle geometry: if all angles are smaller
than 75 degrees, a split into six mini-triangles is performed, see Fig. 5.4. Otherwise, twelve
mini-triangles are generated, see Fig. 5.5. (The 75 degree case distinction is a purely heuristic
one.)
Discussion of both interpolants:
(a) The six-triangle split. The macro-triangle is split by joining the center of the cir-
cumscribed circle to the edge midpoints, see Fig. 5.4. The Brzier ordinates of the quadratic
mini-patches are determined in three steps as shown in Fig. 5.4. Note that as a consequence of
the special geometry of this split we have that the normal cross-boundary derivatives, evaluated
along the edges, are linear instead of piecewise linear. Thus any two adjacent macro-triangles of
this type will be differentiable across their common edge.

1. . from given data Fig. 5.4. The Powell-Sabin interpolant I:


The macro-triangle is split into six mini-
2. o o n s t r a i g h t lines b e t w e e n ° triangles and a quadratic is built over
3. o i n p l a n e of s u r r o u n d i n g o , each.
112 G. Farin / Triangular Bernstein - Bkzier patches

1. • from given data


1. • from linear cross-boundary derivatives
2. o on straight lines b e t w e e n • , •
3. o i n p l a n e of surrounding o

Fig. 5.5. The Powell-Sabin interpolant II: The macro-triangle is split into twelve mini-triangles and a quadratic is built
over each.

This argument relies on the fact that the line joining two adjacent split-points intersects the
common edge at the point that is used to subdivide that edge. (Thus incenters could be used as
split-points as well.) For triangles with obtuse angles, the center of the circumscribed circle will
not be within the macro-triangle or it may be so close to an edge that undesirably 'skinny'
mini-triangles would result. In these cases, a different split is performed (although the use of
incenters would make this unnecessary):
(b) The twelve-triangle split. The macro-triangle is split by joining its centroid to the edge
midpoints and by joining the edge midpoints to one another, see Fig. 5.5. The Brzier ordinates
of the quadratic mini-patches are determined in three steps as shown in Fig. 5.5. The ordinates
mrked by triangles are determined such that the normal cross-boundary derivative, evaluated
along an edge, is linear instead of piecewise linear. Thus any two adjacent patches of this type
will be differentiable across their common boundary. By the same argument, these patches will
form C 1 surfaces when joined to the six-triangle macro-patches from part (a).
One disadvantage of the original Powell-Sabin interpolants is that a case distinction is
necessary regarding the number of mini-triangles per macro-triangle. It is important to note,
however, that a valid triangulation is always guaranteed (i.e. the set of mini-triangles forms a
valid triangulation).
Higher order Powell-Sabin elements are considered by [Sablonnirre '85].

5.4. C1 split square interpolants


The interpolants that were so far discussed in this section were all aiming at the solution of
the scattered data interpolation problem. Triangular interpolants have also been used, however,
to interpolate to data from a rectangular grid. Most of these interpolants are quadratic, for the
reason of ease of contouring [Powell '74]. We shall discuss two interpolants due to [Sibson '80].
The reason for including a cubic interpolant here is mainly to illustrate the ease at which such
interpolants can be devised using the Bernstein-Brzier technique.
We refer to Fig. 5.6 and 5.7 for the discussion of the interpolants. The given data for this
problem are positional and gradient values at data points that are located on a rectangular grid.
G. Farin / Triangular Bernstein - Bkzier patches 113

) /
)
)
1. • from given data
1. • from linear c r o s s - b o u n d a r y derivatives
2. o on straight lines between . , •
3. o in plane of surrounding • , o
Fig. 5.6. Sibson's split-square interpolant I: The square is split into sixteen mini-triangles and a quadratic is built over
each.

\
/

/
1. • fi:om g i v e n d a t a
1. • from linear cross-boundary deri',ativcs
2. o o n s t r a i g h t lincs b e t w e e n *
3. 0 in p l a n e of s u r r o u n d i n g o

Fig. 5.7. Sibson's split-square interpolant II: The square is split into four mini-triangles and a cubic is built over each.
114 G. Farin / Triangular Bernstein - Bkzier patches

Each rectangle is subdivided into sixteen (Fig. 5.6) or four (Fig. 5.7) mini-triangles. While the
subdivision into sixteen triangles yields a C ~ piecewise quadratic interpolant, that into four
triangles yields C a piecewise cubic interpolant. The actual construction of the interpolants
follows the principle already encountered for the Clough-Tocher and Powell-Sabin inter-
polants: translate the given data into Brzier ordinate values along the boundaries and then
compute the remaining ordinates from the C~-conditions.
The ordinates mrked by triangles in Fig. 5.6 are obtained from the requirement that the
normal cross-boundary derivatives be linear instead of piecewise linear. Those marked by
triangles in Fig. 5.7 are obtained by the similar requirement that the normal cross-boundary
derivative be linear instead of quadratic. Both constructions thus ensure that the interpolants
be C ~ globally.

6. T h e N - d i m e n s i o n a l case

6.1. B a s i c r e s u l t s

While we have so far considered Bernstein-B6zier surfaces, mappings R 2 + R , it is possible


to generalize most of the previous concepts to mappings R N + R. The resulting 'surfaces' will
be called m u l t i v a r i a t e Bernstein-B6zier polynomials. The underlying basic theory does not
need any new derivation - - it is sufficient to reread sections 1 and 2 and to simply replace the
summation limit '3' by 'N + 1' (as in (1.1))• Greek letters will now denote multi-indices, e.g.
= (~1,---, #U+l) etc. Thus barycentric coordinates r are now defined by
N+I
P = Y'~ riT~; P, T,. ~ R N, (6.1)
i=1
where [ r I -- 1 and the T, span a simplex 5Pu in R U. A Bernstein polynomial of degree n is
defined by
n? x. IX I = (6.2)

where )~v• = ha? . ~k2!. . ~kN+l!


. . and. r x .= r x~ 1.
x~+,
rN+ A Bernstein-Bdzier polynomial b " ( r ) is
defined by
b"ir)= )--" bxB~,(,r), (6.3),
I~,1=n
i.e., by a formula that is identical to (1.10) except that now 2, and "r have N + 1 components.
The de Casteljau algorithm becomes
N+I
b~+l(,r) = "rib~,+e('r); I~l=n-r; r=O,...,n (6.4a)
i=1
or, equivalently,
<,+1(,) = y' B)(~)b~+,(~); I~ [ = n - r, { E --+~N+I', r=0, ".., n. (6.4b)
l~[ =1

The intermediate coefficients b~x(r) provide the Brzier ordinates of the subdivided patch b n, see
also [Goldman '83].
In order to discuss C* continuity between patches, whose graph is in R "+a, we have to
consider two adjacent simplices in R N, say 5*'N
1 and 5°2. In terms of barycentric coordinates of
~"~, its vertices are given by
5a~= (c: I([ = 1, c ~ Z+U+'}.
G. Farin / Triangular Bernstein- Bbzier patches 115

Fig. 6.1. Trivariate Bernstein-B~zier poly-


nomials: The domain tetrahedron of a
cubic Bernstein-B4zier polynomial is
shown together with some of the subsim-
plices into which it is split. No interior
Brzier ordinates exist for this case.

The vertices of SaN2 can also be expressed in terms of barycentric coordinates of 5°~:
U {o} ; oRN+a, IoI=I.
The only vertices at which SaNa and SaN2 disagree are thus cI and the arbitrary point o.
Let a Bernstein-Brzier polynomial over SaN~ be defined by Brzier ordinates b x and one over
5"N2 by bx- Then the condition for C r continuity between both patches is given by
bx,= b'xo(o) (6.5)
where Xs is constrained by X1 = s.
We annotate a property of multivariate Bernstein-Brzier polynomials that becomes
meaningful only in higher dimensions. Let us define as 'inner' Brzier ordinates all bx for which
all Xi 4: 0. The 'outer' ordinates thus correspond to points on the faces of the simplex SaN- Then
we have the following result: for a given N, all b" with n < N + 1 have no inner Brzier
ordinates. This follows trivially since for X ~ Z N+I+ the condition IX] = n implies X, = 0 for
some i if n < N + 1. Thus for example cubics have no inner Brzier ordinates for N > 3. This
property is useful for the construction of multivariate interpolants. The case N = 3, n = 3 is
illustrated in Fig. 6.1.
A much more detailed treatment of the N-dimensional case can be found in [de Boor '86a,
'86b]. Results concerning convexity of multivariate Bernstein-Brzier patches can be found in
[Dahmen, Micchelli '85].

6.2. The generalized nine parameter interpolant

While the purely theoretical results are carried over to the N-dimensional case almost
instantaneously, the same is not true for the interpolants that were previously discussed. We
shall start with a generalization of the simplest of those interpolants, the nine parameter
interpolant from Section 4.1.
Suppose over a simplex SaN, we are given position and gradient values at each vertex. We
attempt to construct a cubic interpolant to this data a n d assume N > 3, so that by the above
remark the interpolant will have no inner B4zier ordinates. The construction of the interpolant
is recursive: suppose we can find generalized nine parameter interpolants to the ( N - 1)-
dimensional data sets that are defined over the N + 1 faces of SaN" T h e n we have already found
the Brzier ordinates of the final interpolant, since it has only outer ordinates. Continuing this
reasoning, the first time we have to actually compute an interpolant is when the recursion
reaches two-dimensional faces. Over these we apply the standard nine parameter interpolant
from Section 4.1. Thus the generalized nine parameter interpolant is c o m p u t e d by building nine
parameter interpolants over all two-dimensional subfaces of SaN.
116 G. Farin / Triangular Bernstein- B~zier patches

As in the case of the original nine parameter interpolant, it is clear for the higher
dimensional cases that, although C a data are provided, the overall interpolant (defined over a
tessellation into simplices of some given data set) will only be C °. We feel that this may be
sufficient for many applications, but if C 1 continuity is called for, one has to generalize the
Clough-Tocher interpolant.

6. 3. The generalized Clough- Tocher interpolant

We describe briefly a recent method to generalize the standard Clough-Tocher interpolant


to higher dimensions [Worsey, Farin '86]. The idea is again an inductive approach: suppose one
is able to construct Clough-Tocher interpolants to the restriction of the given data to the N + 1
faces of 5: N, thereby fixing all outer Bdzier ordinates of the interpolant. The remaining inner
ordinates can easily be found from the C a conditions between adjacent mini-simplices. The key
to the interpolant is thus how to split the macro-simplex 5: u into mini-simplices.
Instead of describing the general case, we outline the three-dimensional case. The splitting
process consists of three steps:
Step I. Compute the incenter (the center of the inscribed sphere) of each tetrahedron.
Step 2. Join the incenters of any two adjacent tetrahedra and record the intersection of that
straight line with the face common two both tetrahedra. For boundary faces, record the
incenter.

Fig. 6.2. Trivariate interpolation: A split of a tetrahedron into twelve subtetrahedra is shown as an explosion drawing.
A cubic polynomial will be defined over each of them. Note that the two visible faces (white) are split according to the
bivariate Clough-Tocher split.
G. Farin / Triangular Bernstein - Bbzier patches 117

Step 3. Split each tetrahedron into twelve mini-tetrahedra by joining its incenter to the four
points recorded for it in Step 2 and to its four vertices (see Fig. 6.2).
These steps define the subdivision over which the piecewise cubic interpolant will be built.
The choice of incenters in Step 1 is dictated by the differentiability requirements between
adjacent tetrahedra.
The faces of each tetrahedron are split in a Clough-Tocher fashion, and the bivariate
Clough-Tocher interpolant can be applied to generate the boundary B6zier ordinate of each
original tetrahedron. The interior ordinates are then found from the C 1 conditions.
With this split and the accordingly defined interpolant, a globally C ~ surface is defined for a
data set consisting of positional and gradient information at the vertices of a simplicial
tessellation of data points.
Petersen, Piper, and Worsey [Petersen et al. '86] have developed a method to contour such
surfaces, with a method analogous to the one described in Section 7.1. The first trivariate
split-simplex interpolant was considered by [Alfeld '84a], who devised a C l piecewise quintic
interpolant to C 2 data; each macro-simplex is split at the centroid into four mini-simplices.

7. Contouring

Once a surface has been built, for example by using some the previously discussed
interpolants, the question arises as to how to render it. If simple line drawings are used, this
should not be a problem: one can plot along constant barycentric lines or along lines parallel to
the coordinate axes. One form of rendering is used frequently in scientific computing: plots of
so-called level curves or contour lines. These are lines of constant z-value, an example being
lines of constant pressure (isobars) obtained from fitting a surface to scattered air pressure
measurements.
Although the following two sections restrict themselves to the computation of contour lines
of functions (of the form z = f ( x , y) =f(~-)), the same principles can be used to solve the more
general problem of intersection of a parametric surface (see Section 8) with a plane. A different
generalization, contouring Bernstein-B6zier surfaces of several variables (see Section 6) was
obtained by Petersen, Piper, and Worsey [Petersen et al. '86].

7.1. General contouring

The following algorithm was developed by F. Little and C. Petersen [Petersen '84]. It makes
use of the convex hull property of B6zier patches, degree elevation/reduction, and the de
Casteljau split of patches. To find the contour line for one patch of degree n, the following
scheme is followed:
Step O. Check if the minimal and maximal z-values of the B6zier net bracket the contour
value. If not, no contour can be produced.
Step 1. Check if the patch can be approximated within a given tolerance by a patch of degree
n - 1. If so, replace the patch by this approximation (and n by n - 1) and repeat. If the degree
of the patch has become linear, contour. If an approximation fails, go to Step 2.
Step 2. Subdivide the patch at the midpoint of the longest edge. Also split the neighboring
triangle there in order to maintain a valid triangulation. Perform Step 0 for both triangles that
were generated by the subdivision.
Degree reduction, one of the main features of this algorithm, can simply be deduced from the
degree elevation formula (1.12). Evidently, one could omit the degree reduction steps and
consequently increase the number of subdivisions. It is interesting to note in this context that
results obtained by [Sederberg '86] for the intersection of curves indicate that degree reduction
118 G. Farin / Triangular Bernstein- Bkzier patches

does not pay off in m a n y cases. This question is so far unresolved for the surface case.
Strategies for subdivisions other t h a n splitting the longest edge are discussed in [Filip '86].

7. 2. Contouring quadratics

The m a i n incentive for the d e v e l o p m e n t of piecewise quadratic interpolants is the ease with
which they can be contoured. Since a quadratic Brzier polynomial forms a paraboloid over its
d o m a i n (see eq. (2.28)), any plane section, in particular also the c o n t o u r line z = const., is a
conic section. For n o n d e g e n e r a t e cases one obtains hyperbolae or ellipses as c o n t o u r lines. If
the plane z -- const, is moved in the z-direction, the resulting planar sections will be conics that
are similar to the original c o n t o u r line.
A n y conic m a y be represented by a quadratic rational Brzier curve [Bohem, Farin, K a h m a n n
'84] of the form

boBS(t) + wbl (t) + b2B (t)


b(t) = (7.1)
Bg(t) + +
The b~ f o r m the Brzier polygon of the curve, and w is the 'weight' that is assigned to b 1 and
that determines of which type the conic section is: for w < 1, it is an ellipse, for w > 1, it is a
hyperbola. All bi lie in the plane z = const. Thus the contouring problem is solved by
d e t e r m i n i n g b0, bl, b2, and w.
Referring to Fig. 7.1, let m be the m i d p o i n t of b 0 and bE, and let s = b(1). T h e n m, s, b 1 lie
on a straight line. Define r to be the ratio in which s divides m and b 1, such that
s = (1 - r ) b 1 + rm. (7.2)
This ratio and the weight w are related by [Boehm, Farin, K a h m a n n '84]
r
- (7.3)
w 1-r
The following is an outline of an algorithm to find the contour line z = const, of a quadratic
Bernstein-Brzier patch:
Step 1. Intersect all three b o u n d a r y curves of the quadratic with the plane. This requires the
solution of three quadratic equations in one variable. Suppose we get exactly two intersection
points; n a m e them b 0 and b 2.

Fig. 7.1. Contouring a quadratic: The contour is defined by the B6zier polygon consisting of the b, and a weight w
attached to b 1. The top view of the curve/surface configuration is shown.
G. Farin / Triangular Bernstein- Bbzier patches 119

Fig. 7.2. Contouring quadratics: In the


shown configuration, the intersection
curve is defined over the biinfinite inter-
val ( - oo, + oo)-(0, 1). In such cases fur-
ther subdivision is advisable.

Step 2. Compute the tangent p l a n e s / 7 o and /-I2 at b 0 and b2. Compute the intersection b~
of the three planes H 0, /7 2, and z = const.
Step 3. In order to find the weight w, compute m = (b 0 + b2)/2. Intersect the straight line
through m and bl with the quadratic patch. This again requires the solution of a quadratic
equation in one variable. Name the point of intersection s. Determine r from (7.2). Determine
w from (7.3).

Remarks. Step 1 does not necessarily yield exactly two solutions b 0 and b 2, but possibly up to
six different points. In such a case, the triangular patch has to be split into smaller patches (see
Section 2) and the algorithm has to be applied to all resulting subpatches. Such a split is also
advisable if no intersections are found with the boundary curves, but an interference between
the control polygon and the plane is detected (possible closed intersection curve).
Step 2. The point b 1 may be located at infinity or very far outside the patch. In that case:
subdivide patch and repeat Step 1 for all subpieces.
Step 3. If the point s does not lie between bl and m, the patch should also be subdivided,
see Fig. 7.2.

8. The parametric case

We have so far only considered maps 3----, R, where Y is the domain triangle. The surfaces
that are generated that way are explicit surfaces of the form z =f(x, y) or equivalently
z =f(~-). We shall now consider a more general class of surfaces: parametric surfaces of the
form

b"(~-) = ~--"bxB~, ( r ) , (8.1)

where boldface letters denote points in R 3. A parametric Bernstein-Brzier patch is thus the
graph of a map ~ R 3. Explicit triangular patches can be used successfully for scattered data
interpolation, as outlined in Sections 4 and 5. Many problems in geometric modelling, however,
require the additional flexibility offered by parametric patches.
120 G. Farin / Triangular Bernstein - B&ier patches

8.1. Where to use parametric triangular patches

The theory of parametric tensor product polynomial patches is well established [Bohem,
Farin, Kahmann '84], [Faux, Pratt '78], and such patches are successfully used by many
commercial CAD systems to model complicated surfaces.
Many surfaces lend themselves naturally to a tensor product representation, but surfaces
exist where this is not the case. The theory of tensor product patches requires that all data have
a rectangular geometry and that parametrizations of opposite boundary curves be 'similar'. this
is the case for some surfaces (e.g., the trunk lid of a car) but not for others (e.g., interior car
body panels). For those more complicated surface, no rectangular geometry is apparent, and
one has to invest considerable time and effort to impose a rectangular structure on such
surfaces.
It is for these complex surfaces that the use of triangular patches is advantageous. The
reason is simple: every surface can be covered with a triangular network, while this may be
impossible with (nondegenerate) rectangular networks: a simple example is given by the sphere.
Systems that employ rectangular patches only must use degenerate patches to model regions
where triangular patches are needed. Degenerate rectangular patches look like a triangular
patch; they have an edge collapsed to a single point. They suffer seriously from the fact that the
surface normal is not defined at that point. Degenerate patches frequently cause failures of
standard algorithms, such as plane/surface intersections or ray tracing.
In other cases, one has a rectangular geometry, but the parametrizations of opposite
boundary curves are too different to allow a reasonable tensor product surface to be fitted
between the boundary curves (e.g. opposite boundary curves could consist of a different
number of polynomial segments). A solution to one such problem using triangular patches is
discussed in [Farin '86].
In summary: One should use rectangular patches whenever possible since they can be
computed quickly and without the need for a complicated data structure. In those cases where
rectangular patches are too tedious to use, triangular patches should be employed. They may be
more CPU-intensive, but the expense incurred should weigh little compared to cost of (human)
efforts to design complex surfaces with insufficient tools.

8.2. Parametric continuity

Let ~Y- and 3- be two domain triangles that share a common edge. Let the pair (~Y-, 3 ) be
mapped to two triangular parametric patches b and b. If this map is continuous, b and b share
a common boundary curve: we say that the surface consisting of b and b is C °. If the map is
C 1, we say that the surface consisting of b and b is C x, etc. A geometric interpretation of the
two patches being C r is as follows: Let l be a straight line crossing the common edge of g- and
5#. Then the map (~Y', 3~-) ~ (b, b) takes l to a C r curve (on the surface (b, b)) in R 3.
The continuity conditions for parametric patches follow directly from those for nonparamet-
ric patches:
has = b~,o(o); s = 0 .... ,r. (8.2)
where the meaning of all symbols is the same as in (2.21), except that the b's are now points
instead of scalars. Fig. 8.1 illustrates the geometry of the simple case of C 1 continuity. Fig 8.2
demonstrates that simple coplanarity of adjacent subtriangles is not sufficient.

8.3. Visual continuity

Surfaces that are C a according to (8.2) turn out to be too 'rigid' for the successful modeling
of complex surfaces. An example for the failure o f such surfaces to cope even with simple
G. Farin / Triangular Bernstein-Bbzier patches 121

Fig. 8.1. Parametric Cl-continuity: The indicated pairs of subtriangles must be coplanar and also be affine images of
the pair of domain triangles.

situations is given in Fig. 8.2: even if all boundary curves were elevated from quadratic to
cubic, no interior Bdzier points b1,1,1 could be found such that the two patches had a
continuously varying tangent plane along their common boundary.
While that example exhibits a local problem that C a surfaces may encounter, another type
of problem seems to be at least as severe: A piecewise triangular C a surface is the map of a
triangulated domain. If such a surface is to be used for the representation of closed (e.g.
sphere-like) surfaces, singularities must occur. A way to avoid these is the relaxation of the C a
conditions. The requirement of tangent plane (or visually C 1, short: V 1) continuity between
adjacent patches turns out to be general enough to overcome both the local and global
problems mentioned above.
A parametric Bernstein-Bdzier patch is completely defined by its Bdzier net: no reference to
a domain triangle is at all necessary. Therefore it should be possible to describe V a continuity
between adjacent (adjacent simply means the existence of a common boundary curve) patches
b and b entirely in terms of their Bdzier nets. An early approach towards this goal is in [Farin
'82], but we follow here a generalization due to [Piper '86].

b2,o,o

Fig. 8.2. Parametric Cl-continuity: Two


adjacent quadratic patches are shown to-
gether with the visible part of their com-
mon boundary curve, the shaded adjacent
subtriangles are coplanar. However, the
radial lines from b2,0,0 and b2,0.0 to the
midpoint of the common boundary are
not smooth, as their Bdzier polygons indi-
cate (see also Fig. 2.4). This illustrates
fi ,o,o that coplanarity of adjacent subtriangles
is not sufficient as a C 1 condition.
122 G. Farin / Triangular Bernstein- B&ier patches

q3

q4

Fig. 8.3. VLcontinuity: The heavily delineated pair of triangles arises from the de Casteljau constructions (one for each
patch) of the indicated point on the common boundary curve. This pair of triangles must be planar.

Let c be a point on the common boundary curve of b and b. The point c can be constructed
by application of the de Casteljau algorithm to either patch. From the remarks after Theorem
2.4 it is clear that the intermediate points b~-1 and b~-1 determine the tangent planes at c. In
order for both tangent planes to coincide, the points b~,-a and b~,-1 must be coplanar. There
are four such points (taking into account that we have coincident points from the common
boundary), and we denote them by q~, i = 1, 2, 3, 4, see Fig. 8.3. The VCcondition now
becomes:
( l 1 1 1 )
det = 0. (8.3)
ql(t) q2(t) q3(t) q4(t)
We note again that (8.3) is purely a relationship between points in R 3, without reference to
any domains.
For univariate splines, an attempt to define V 1 curves is due to [Barsky '81]: he uses the knot
spacing as a 'shape parameter', called /31. This amounts to a harmonic spacing of the knots
such that At i = fliAti+ 1. A generalization to triangular Bernstein-Brzier surfaces is due to [De
Rose '85]: an equilateral triangulation is distorted in one direction such that a harmonic
spacing of the parameter lines is achieved (see Fig. 8.4). The spacing factor, again called ill, is
called a shape parameter. This concept of V 1 continuity is a special case of C 1 continuity as

Fig. 8.4. Vl-continuity: The distorted


equilateral triangulation shown serves as a
domain for triangular surfaces that are a
generalization of fl-splines.
G. Farin / Triangular Bernstein - B~zier patches 123

defined above. It should be mentioned, however, that the above V a surfaces are only a special
case of a more general definition of V 1 continuity in terms of manifolds [De Rose '85].
Different approaches to the concept of V 1 (or G 1) continuity are in [Herron '85a, '85b],
[Jensen '85], [Rescorla '85]. However, these authors do not base their arguments on the
geometric properties of B6zier nets but rather on domain-dependent concepts.
The definition of higher order visual continuity has so far been a considerable problem. The
only approach that (in some special cases) led to conditions for adjacent B6zier nets is the one
by [ K a h m a n n '83]: he defines two adjacent patches to be V 2 if their Dupin indicatrices are
uniquely defined along the common boundary.

8. 4. Parametric nine parameter interpolants

The nine parameter interpolant from Section 4.1 is not readily applicable in a parametric
setting: instead of nine data items one is typically only given six, namely the vertices of the
patch and the normals there. (Very often these normals have to be made up from point data as
a preprocessing step.) The problem of finding the remaining six boundary B6zier points from
these data is far from being trivial, and we refer the reader to the discussion in [Nielson '86].
Having determined the boundary curves of the patch, we are left with the task of
determining b~,a,1. Equation (4.2) certainly solves this problem, but it turns out that in general
the resulting patch tends to 'bulge out'. An alternative to (4.2) is given by

1._l__bI + 1 b2 + 1_.1.._b3
m1 m2 m3
bl,l,l = 1 1 1 '
+--+
ml m2 m3
where
b 1 = 1(bl,2, 0 + bl,0,2),
b2 = ½(b0,1,2 + b2,1,o ),
b3 = 1 (bo,2,1 + b2,0,1 ).
The quantity m i is a measure of the deviation of edge i from a straight line (mi = 0 labels edge
i as linear). This formula uses inverse weighting and has some resemblance to Shepard's
formula. Although somewhat ad hoc, its performance compares favorably to that of (4.2). Its
main feature is that ruled surfaces are reproduced.
Of course this nine parameter interpolant will not produce globally smooth surfaces. Its
importance stems from the fact that it can be used as a building block for more complicated
smooth surfaces [Piper '86].

Conclusion

While we were able to cover some material related to the theory of Bernstein-B6zier patches
defined over triangles, much had to be left undiscussed. We mention some of those topics and
point out to relevant literature:
Box splines. A growing number of articles is concerned with a generalization of univariate
B-splines to a multivariate setting. A special case of these multivariate splines are so-called box
splines. They correspond (in the bivariate case) to surfaces defined over a regular tessellation of
the plane; in those cases where the tessellation is composed of triangles, it is possible to
represent the surface as a collection of Bernstein-B6zier patches, see [Dahmen, Micchelli '84],
[Boehm '85], [Prautzsch '84].
124 G. Farin / Triangular Bernstein- Bbzier patches

Global interpolants. In Sections 4 and 5, we have discussed interpolants that were local.
However, it is possible to consider interpolants that are defined by global requirements, e.g., to
minimize a certain functional (such as strain energy) over the whole (triangulated) domain. This
leads to the solution of (large) linear systems, see [Schmidt '82], [Bohem, Farin, Kahmann '84].
Connection to rectangular patches. If triangular patches are to be used for the representation
of complex surfaces, it will become necessary to connect them smoothly to parts of the surface
where rectangular (Brzier) patches are used. This can only be done in the sense of visual
continuity, see [Farin '83], [Hosaka, Kimura '78]. Sometimes a conversion from triangular to
rectangular patches will be necessary; an elegant algorithm for this is in [Brueckner '80] and an
elementary development is in [Farin '79]. The 'inverse' problem, converting from rectangular to
triangular form has been considered by [Goldman, Filip '86].
Dimension counts. Over a given triangulation, C r piecewise polynomials form a linear space.
Its dimension is unknown (except for some special cases), and so is the existence of (local
support?) basis functions. Recent investigations have made successful use of the
Bernstein-Brzier form: [Alfeld '86a, '86b], [Alfeld, Schumaker '86], [Alfeld, Piper, Schumaker
'86].

Acknowledgement

This research was supported in part by Department of Energy contract DE-AC02-85ER12046


to the University of Utah. The author wishes to thank Peter Alfeld for pointing out an error in
an earlier draft of this manuscript and also Wolfgang Boehm for many helpful comments.

Appendix: A data structure

For the computer representation of a surface that is comprised of many triangular patches
(each being defined over some triangle of a triangulation of the given data points) it is
extremely important to utilize an efficient data structure. We shall describe a structure that is
due to F. Little and C. Petersen and that has been used successfully by the University of Utah
Math CAGD group for several years. The programs were written in FORTRAN, and this is
reflected by the fact that all data are contained in several independent arrays.
For the specification of these arrays, two integers are needed: the number MP of data sites
and the number MTR of triangles in the triangulation. This last number should be the output
of a routine that triangulates the given data sites. This routine determines the number MI of
interior points and the number MB of boundary points of the triangulation. They are related by
MTR = 2* MI + MB - 2.
The data structure consists of the following arrays:
P(3,MP) holds the x, y-location of the data sites as well as the given function values there.
ITR(9,MTR) contains the pointers that define the triangulation. The first three entries
ITR(1,K), ITR(2,K), ITR(3,K) identify the vertices of triangle number K in the triangulation.
They are P(*,ITR(1,K)), P(*,ITR(2,K)), P(*,ITR(3,K)). The next three entries, ITR(4,K),
ITR(5,K), ITR(6,K) identify the triangles that are neighboring triangle number K, i.e.,
ITR(4,K) is the index (in ITR) of the triangle that shares edge one with triangle number K;
ITR(5,K) corresponds to edge number two etc. If no such triangle exists, zeroes are entered.
Finally, ITR(7,K), ITR(8,K), ITR(9,K) are the indices of the points in P that are opposite edge
number 1,2, and 3, respectively (again zero entries if no such points exist).
PZ(10, MTR) contains the Brzier ordinates for each patch. They are ordered linearly, and a
conversion from the triple subscripts used so far to this ordering is necessary, e.g., by an
G. Farin / Triangular Bernstein-Bkzier patches 125

implicit function definition. The '10' was chosen since no patches of degree greater than three
were used; in general, one has to replace 10 by (n + 1)(n + 2)/2, if n is the anticipated
maximum degree.
NDEG(MTR) contains the degrees of every patch.
This data structure is highly redundant (e.g., the boundary Brzier ordinates are stored twice
in PZ), but this has proved to help speed up many subtasks like searches. The fact that each
patch may be of different degree is useful for algorithms like the contouring algorithm due to
[Petersen '84], see also Section 7.

References

Alfeld, P. (1984a), A trivariate Clough-Tocher scheme for tetrahedral data, Computer Aided Geometric Design 1,
169-181.
Alfeld, P. (1984b):, A bivariate C 2 Clough-Tocher scheme, Computer Aided Geometric Design 1,257-267.
Alfeld, P. (1985), Private communication.
Alfeld, P. (1986a), On the dimension of piecewise polynomial functions, Proc. Biennial Dundee Conference on
Numerical Analysis, June 25-28, 1985, Pitman, London.
Alfeld, P. (1986b), A case study of multivariate piecewise polynomials, to appear in: G. Farin, ed., Geometric Modeling,
SIAM, Philadelphia, PA.
Alfeld, P., Piper, B. and Schumaker, L. (1986), Local bases for bivariate C r piecewise polynomials of degree
d _>4r + 1, submitted for publication.
Alfeld, P. and Schumaker, L. (1986), The dimension of bivariate spline spaces of smoothness r for degree 4r + 1,
submitted for publication.
Barnhill, R.E., Birkhoff, G. and Gordon, W. (1974), Smooth interpolation in triahgles, J. Approx. Theory 8, 114-128.
Barnhill, R.E. (1977), Representation and approximation of surfaces, in: J. Rice, ed., Mathematical Software HI,
Academic Press, New York, 69-120.
Barnhill, R.E. (1985), Surfaces in computer aided geometric design: a survey with new results, Computer Aided
Geometric Design 2, 1-17.
Barnhill, R.E. and Farin, G., (1981), C 1 quintic interpolation over triangles: two explicit representations, Int. J. Num.
Methods in Engineering 17, 1763-1778.
Barsky, B. (1981), The fl-spline: a local representation based on shape parameters and fundamental geometric
measures, dissertation, Univ. of Utah.
Boehm, W. (1985), Multivariate spline algorithms, in: J. Gregory, ed., Mathematics of Surfaces, Oxford University
Press, Oxford.
Boehm, W. and Farin, G, (1983), ketter to the Editor, CAD 15, 260-261.
Boehm, W., Farin, G. and Kahmann, J. (1984), A survey of curve and surface methods in CAGD, Computer Aided
Geometric Design 1, 1-60.
de Boor, C. (1986a), B-net basics, to appear in: G. Farin, ed., Geometric Modeling, SIAM, Philadelphia, PA.
de Boor, C. (1986b), B-net basics, enlarged version of [de Boor '86a], in preparation.
Brueckner, I. (1980), Construction of Brzier points of quadrilaterals from those of triangles, CAD 12, 21-24.
de Casteljau, P. (1959), Outillage m&hodes calcul, Andr6 CitroSn Automobiles SA, Paris.
de Casteljau, P. (1963), Courbes et surfaces h poles, Andr6 Citroen Automobiles SA, Paris.
Chang, G. and Davis, P.J. (1984), A new proof for the convexity of the Bernstein-Brzier surfaces over triangles, J.
Approx. Theory 40, 11-28.
Chang, G. and Feng, Y. (1985), An improved condition for the convexity of Bernstein-Brzier polynomials over
triangles, Computer Aided Geometric Design 1, 279-283.
Chang, G. and Hoschek, J. (1985), Convexity and variation diminishing property of Bernstein polynomials over
triangles, Multivariate Approximation Theory III, Birkh~iuser, Basel.
Chang, G. and Feng, Y. (1985), A pair of compatible variations for Bernstein triangular polynomials, submitted for
publication.
Chui, C. and Lai, M. (1985), On bivariate vertex splines, CAT report no. 74, Texas A&M Univ., College Station, TX.
Dahmen, W. and Micchelli, C. (1985), Convexity of multivariate Bernstein polynomials and box spline surfaces,
Preprint.
Dahmen, W. and Micchelli, C. (1984), Subdivision algorithms for the generation of box spline surfaces, Computer
Aided Geometric Design 1, 115-129.
Davis, P. (1976), Lecture notes on CAGD, held at the Univ. of Utah, Dept. of Mathematics.
Farin, G. (1979), Subsplines iiber Dreiecken, Dissertation, Braunschweig, FRG.
126 G. Farin / Triangular Bernstein - Bbzier patches

Farin, G. (1980), Brzier polynomials over triangles and the construction of piecewise C r polynomials, TR/91, Dept. of
Mathematics, Brunel University, Uxbridge, UK.
Farin, G., (1983), Smooth interpolation to scattered 3D data, in: R.E. Barnhill and W. Boehm, eds., Surfaces in CAGD,
North-Holland, Amsterdam.
Farin, G. (1982), A construction for the visual C 1 continuity of polynomial surface patches, Computer Graphics and
Image Processing 20, 272-282.
Farin, G. (1985a), A modified Clough-Tocher interpolant, Computer Aided Geometric Design 2, 19-27.
Farin, G. (1985b) Piecewise triangular C 1 surface strips, CAD 18, 45-47.
Farin, G. and Barry, P. (1986), A link between Lagrange and Brzier curve and surface schemes, submitted to CAD.
Faux, I. and Pratt, M. (1978), Computational Geometry for Design and Manufacture, Ellis Horwood, Chichester.
Filip, D. (1985), Adaptive subdivision algorithms for a set of Brzier triangles, submitted for publication.
Frederickson, (1970, 1971), Triangular spline interpolation/Generalized triangular splines, Math reports no. 6/70 and
7/71, Lakehead University, Canada.
Goldman, R. (1983), Subdivision algorithms for Brzier triangles, CAD 15, 159-166.
Goldman, R. and Filip, D. (1986), Conversion from Brzier rectangles to Brzier triangles, submitted for publication.
Goodman, T.N.T. (1985), Variation diminishing properties of Bernstein polynomials over triangles, to appear in J.
Approx. Theory.
Gregory, J.A. (1978), Piecewise interpolation theory and finite element analysis, Dissertation, Brunel University,
Uxbridge, UK.
Grieger, I. (1985), Geometry cells and surface definition by finite elements, Computer Aided Geometric Design 2,
213-222.
Herron, G. (1986), Techniques for Visual Continuity, to appear in G. Farin, ed., Geometric Modeling, SIAM,
Philadelphia, PA.
Herron, G. (1985b), Smooth closed surfaces with discrete triangular interpolants, CAGD 2, 297-306.
Hosaka, M. and Kimura, F. (1978), Synthesis methods of curves and surfaces in interactive CAD, Proceedings:
Interactive Techniques in CAD, Bologna, 151-156.
Jensen, T. (1985), Assembling triangular and rectangular patches and multivariate splines, to appear in: G. Farin, ed.,
Geometric Modeling, SIAM, Philadelphia, PA.
Kahmann, J. (1983), Continuity of curvature between adjacent Brzier patches, in: R.E. Barnhill and W. Boehm,
Surfaces in CAGD, North-Holland, Amsterdam.
Kuang, Z. and Chang, G. (1985), Remarks on the convexity for parametric Brzier triangles, submitted for publication.
Lane, J. and Riesenfeld, R. (1983), A geometric proof of the variation diminishing property of B-spline approximation,
J. Approx. Theory 37, 1-4.
Nielson, G. (1986), A visually continuous, transfinite triangular interpolant, to appear in: G. Farin, ed., Geometric
Modeling, SIAM, Philadelphia, PA.
Percell, P. (1976), On cubic and quartic Clough-Tocher elements, SIAM J. Numerical Analysis 13, 100-103.
Petersen, C. (1984), Adaptive contouring of three-dimensional surfaces, Computer Aided Geometric Design 1, 61-74.
Petersen, C., Piper, B. and Worsey, A. (1986), Adaptive contouring of a trivariate interpolant, to appear in: G. Farin,
ed., Geometric Modeling, SIAM, Philadelphia, PA.
Piper, B. (1986), Tangent plane continuity between triangular Brzier patches, to appear in: G. Farin, ed., Geometric
Modeling, SIAM, Philadelphia, PA.
Powell, M.J. (1974), Piecewise quadratic surface fitting for contour plotting, in: D.J. Evans, ed., Software for Numerical
mathematics, Academic Press, London.
Powell, M.J. and Sabin, M.A. (1977), Piecewise quadratic approximation on triangles, ACM Trans. Mathematical
Software 3, 316-325.
Prautzsch, H. (1984), Unterteilungsalgorithmen fiir multivariate splines, Dissertation, Technical University
Braunschweig, FRG.
Prautzsch, H. (1985), Simple concepts don't work as the definition of variation diminishing, Breakout session at the
1985 SIAM conference on Geometric Modeling and Robotics, Albany, NY.
Prenter, P. (1975), Splines and Variational Methods, Wiley, New York.
Rescorla, K. (1985), Multivariate interpolation, Dissertation, Univ. of Utah.
De Rose, T. (1985), Geometric continuity: A parametrization independent measure of continuity for CAGD, Report
No. UCB/CSD 86/255, UC Berkeley.
Sabin, M.A. (1977), The use of piecewise forms for the numerical representation of shape, Dissertation, Budapest,
Hungary.
Sablonnirre, P. (1982), Bases de Bernstein et approximants splines, Dissertation, Lille, France.
Sblonnirre P. (1985), Composite finite elements of class C k, J. Comput. Appl. Math. 12&13, 541-550.
Schmidt, R. (1982), Eine Methode zur Konstruktion yon C1-Fl~ichen zur Interpolation unregelm~issig verteilter Daten,
in: Schempp and Zeller, eds., Multivariate Approximation II, BirkhSuser, Basel, 343-361.
Schumaker, L. and Volk, W. (1986), Efficient evaluation of multivariate polynomials, submitted for publication.
G. Farin / Triangular Bernstein - Bbzier patches 127

Sederberg, T. and Parry, S. (1986), A comparison of three curve intersection algorithms, CAD 18, 58-64.
Sibson, R. (1980), A seamed quadratic element for contouring, Preprint, University of Bath, UK.
St~rk, E. (1976), Mehrfach differenzierbare B6zierkurven und B6zierfl~ichen, Dissertation, Technical University
Braunscheig, FRG.
Strang, G. and Fix, G. (1973), An Analysis of the Finite Element Method, Prentice-Hall, Englewood Cliffs, NJ.
Whelan, T. (1986), A representation of a C 2 interpolant over triangles, Computer Aideol Geometric Design 3, 53-66.
Worsey, A. and Farin, G. (1985):, An n-dimensional Clough-Tocher interpolant, being revised.
Zhou, J. (1985), The positivity and convexity for Bernstein polynomials over triangles, Dissertation (in Chinese), to
appear in Math. Numer. Sinica.
Zenisek, A. (1970), Interpolation polynomials on the triangle, Numer. Math. 15, 283-296.

You might also like