8.6 Curves and surfaces (曲线与曲面)

本文为《Linear algebra and its applications》的读书笔记

Bézier Curves 贝塞尔曲线

The curves described below play an important role in computer graphics as well as engineering. For example, they are used in Adobe Illustrator and Macromedia Freehand, and in application programming languages such as OpenGL. These curves permit a program to store exact information about curved segments and surfaces in a relatively small number of control points. All graphics commands for the segments and surfaces have only to be computed for the control points. The special structure of these curves also speeds up other calculations in the “graphics pipeline” that creates the final display on the viewing screen.


WARM UP 1
Let p 0 , p 1 \boldsymbol p_0, \boldsymbol p_1 p0,p1, and p 2 \boldsymbol p_2 p2 be points in R n \R^n Rn, and define f 0 ( t ) = ( 1 − t ) p 0 + t p 1 , f 1 ( t ) = ( 1 − t ) p 1 + t p 2 \boldsymbol f_0(t)=(1-t)\boldsymbol p_0 + t\boldsymbol p_1, \boldsymbol f_1(t)=(1-t)\boldsymbol p_1+t\boldsymbol p_2 f0(t)=(1t)p0+tp1,f1(t)=(1t)p1+tp2, and g ( t ) = ( 1 − t ) f 0 ( t ) + t f 1 ( t ) \boldsymbol g(t)=(1-t)\boldsymbol f_0(t)+t\boldsymbol f_1(t) g(t)=(1t)f0(t)+tf1(t) for 0 ≤ t ≤ 1 0\leq t\leq 1 0t1. For the points as shown below, draw a picture that shows f 0 ( 1 2 ) , f 1 ( 1 2 ) \boldsymbol f_0(\frac{1}{2}),\boldsymbol f_1(\frac{1}{2}) f0(21),f1(21), and g ( 1 2 ) \boldsymbol g(\frac{1}{2}) g(21).

在这里插入图片描述
WARM UP 2
Let g ( t ) \boldsymbol g(t) g(t) be defined as above. Its graph is called a quadratic Bézier curve. The points p 0 , p 1 \boldsymbol p_0, \boldsymbol p_1 p0,p1, and p 2 \boldsymbol p_2 p2 are called the control points for the curve. Compute a formula for g ( t ) \boldsymbol g(t) g(t) that involves only p 0 , p 1 \boldsymbol p_0, \boldsymbol p_1 p0,p1, and p 2 \boldsymbol p_2 p2. Then show that g ( t ) \boldsymbol g(t) g(t) is in c o n v { p 0 , p 1 , p 2 } conv\{\boldsymbol p_0,\boldsymbol p_1,\boldsymbol p_2\} conv{p0,p1,p2} for 0 ≤ t ≤ 1 0\leq t \leq 1 0t1.

WARM UP 3
Given control points p 0 , p 1 \boldsymbol p_0, \boldsymbol p_1 p0,p1, p 2 \boldsymbol p_2 p2, and p 3 \boldsymbol p_3 p3 in R n \R^n Rn, let g 1 ( t ) \boldsymbol g_1(t) g1(t) for 0 ≤ t ≤ 1 0\leq t \leq 1 0t1 be the quadratic Bézier curve determined by p 0 , p 1 \boldsymbol p_0, \boldsymbol p_1 p0,p1, and p 2 \boldsymbol p_2 p2, and let g 2 ( t ) \boldsymbol g_2(t) g2(t) be defined similarly for p 1 , p 2 \boldsymbol p_1, \boldsymbol p_2 p1,p2, and p 3 \boldsymbol p_3 p3. For 0 ≤ t ≤ 1 0\leq t\leq 1 0t1, define h ( t ) = ( 1 − t ) g 1 ( t ) + t g 2 ( t ) \boldsymbol h(t)=(1-t)\boldsymbol g_1(t)+t \boldsymbol g_2(t) h(t)=(1t)g1(t)+tg2(t). Show that the graph of h ( t ) \boldsymbol h(t) h(t) lies in the convex hull of the four control points. This curve is called a cubic Bézier curve. A Bézier curve of degree k k k is determined by k + 1 k + 1 k+1 control points, and its graph lies in the convex hull of these control points.


The discussion here focuses on quadratic and cubic Bézier curves, which are determined by three or four control points, denoted by p 0 \boldsymbol p_0 p0, p 1 \boldsymbol p_1 p1, p 2 \boldsymbol p_2 p2, and p 3 \boldsymbol p_3 p3. These points can be in R 2 \R^2 R2 or R 3 \R^3 R3, or they can be represented by homogeneous forms in R 3 \R^3 R3 or R 4 \R^4 R4. The standard parametric descriptions of these curves, for 0 ≤ t ≤ 1 0\leq t \leq 1 0t1, are

在这里插入图片描述
Figure 1 shows two typical curves. Usually, the curves pass through only the initial and terminal control points, but a Bézier curve is always in the convex hull of its control points.

在这里插入图片描述


Bézier curves are useful in computer graphics because their essential properties are preserved under the action of linear transformations and translations. For instance, if A A A is a matrix of appropriate size, then from the linearity of matrix multiplication, for 0 ≤ t ≤ 1 0\leq t\leq 1 0t1,

在这里插入图片描述
The new control points are A p 0 , . . . , A p 3 A\boldsymbol p_0,...,A\boldsymbol p_3 Ap0,...,Ap3.

EXERCISE 1
Suppose a Bézier curve is translated to x ( t ) + b \boldsymbol x(t)+\boldsymbol b x(t)+b. That is, for 0 ≤ t ≤ 1 0\leq t \leq 1 0t1, the new curve is

在这里插入图片描述
Show that this new curve is again a Bézier curve.
SOLUTION
[Hint: Where are the new control points?]


The curves in Figure 1 suggest that the control points determine the tangent lines (切线) to the curves at the initial and terminal control points. The direction of the tangent line to the curve at a point y ( t ) \boldsymbol y(t) y(t) is given by the derivative y ′ ( t ) \boldsymbol y'(t) y(t), called the tangent vector (切向量) of the curve. (This derivative is computed entry by entry.)

EXAMPLE 1
Determine how the tangent vector of the quadratic Bézier curve w ( t ) \boldsymbol w(t) w(t) is related to the control points of the curve, at t = 0 t=0 t=0 and t = 1 t=1 t=1.
SOLUTION
在这里插入图片描述
Then, because differentiation is a linear transformation on functions,

在这里插入图片描述

So

在这里插入图片描述

The tangent vector at p 0 \boldsymbol p_0 p0, for instance, points from p 0 \boldsymbol p_0 p0 to p 1 \boldsymbol p_1 p1, but it is twice as long as the segment from p 0 \boldsymbol p_0 p0 to p 1 \boldsymbol p_1 p1. Notice that w ′ ( 0 ) = 0 \boldsymbol w'(0)=\boldsymbol 0 w(0)=0 when p 1 = p 0 \boldsymbol p_1=\boldsymbol p_0 p1=p0. In this case, w ( t ) = ( 1 − t 2 ) p 1 + t 2 p 2 \boldsymbol w(t)=(1-t^2)\boldsymbol p_1+t^2\boldsymbol p_2 w(t)=(1t2)p1+t2p2, and the graph of w ( t ) \boldsymbol w(t) w(t) is the line segment from p 1 \boldsymbol p_1 p1 to p 2 \boldsymbol p_2 p2.

Connecting Two Bézier Curves

Two basic Bézier curves can be joined end to end, with the terminal point of the first curve x ( t ) \boldsymbol x(t) x(t) being the initial point p 2 \boldsymbol p_2 p2 of the second curve y ( t ) \boldsymbol y(t) y(t). The combined curve is said to have G 0 \boldsymbol G^0 G0 g e o m e t r i c geometric geometric c o n t i n u i t y continuity continuity (几何连续性) (at p 2 \boldsymbol p_2 p2) because the two segments join at p 2 \boldsymbol p_2 p2. If the tangent line to curve 1 at p 2 \boldsymbol p_2 p2 has a different direction than the tangent line to curve 2, then a “corner”(角), or abrupt change of direction, may be apparent at p 2 \boldsymbol p_2 p2. See Figure 2.

在这里插入图片描述
To avoid a sharp bend, it usually suffices to adjust the curves to have what is called G 1 \boldsymbol G^1 G1 g e o m e t r i c geometric geometric c o n t i n u i t y continuity continuity, where both tangent vectors at p 2 \boldsymbol p_2 p2 point in the same direction. That is, the derivatives x ′ ( 1 ) \boldsymbol x'(1) x(1) and y ′ ( 0 ) \boldsymbol y'(0) y(0) point in the same direction, even though their magnitudes may be different.

When the tangent vectors are actually equal at p 2 \boldsymbol p_2 p2, the tangent vector is continuous at p 2 \boldsymbol p_2 p2, and the combined curve is said to have C 1 \boldsymbol C^1 C1 continuity, or C 1 \boldsymbol C^1 C1 p a r a m e t r i c parametric parametric c o n t i n u i t y continuity continuity. Figure 3 shows G 1 G^1 G1 continuity in ( a ) (a) (a) and C 1 C^1 C1 continuity in ( b ) (b) (b).

在这里插入图片描述
EXAMPLE 2
Let x ( t ) \boldsymbol x(t) x(t) and y ( t ) \boldsymbol y(t) y(t) determine two quadratic Bézier curves, with control points { p 0 , p 1 , p 2 } \{\boldsymbol p_0,\boldsymbol p_1,\boldsymbol p_2\} {p0,p1,p2} and { p 2 , p 3 , p 4 } \{\boldsymbol p_2,\boldsymbol p_3, \boldsymbol p_4\} {p2,p3,p4}, respectively. The curves are joined at p 2 = x ( 1 ) = y ( 0 ) \boldsymbol p_2=\boldsymbol x(1)=\boldsymbol y(0) p2=x(1)=y(0).
a. Suppose the combined curve has G 1 G^1 G1 continuity (at p 2 \boldsymbol p_2 p2). What algebraic restriction does this condition impose on the control points? Express this restriction in geometric language.
b. Repeat part (a) for C 1 C^1 C1 continuity.
SOLUTION
a. From Example 1, x ′ ( 1 ) = 2 ( p 2 − p 1 ) \boldsymbol x'(1)= 2(\boldsymbol p_2-\boldsymbol p_1) x(1)=2(p2p1) and y ′ ( 0 ) = 2 ( p 3 − p 2 ) \boldsymbol y'(0)=2(\boldsymbol p_3-\boldsymbol p_2) y(0)=2(p3p2). G 1 G^1 G1 continuity means that y ′ ( 0 ) = k x ′ ( 1 ) \boldsymbol y'(0)=k\boldsymbol x'(1) y(0)=kx(1) for some positive constant k k k. Equivalently

在这里插入图片描述
Geometrically, (3) implies that p 2 \boldsymbol p_2 p2 lies on the line segment from p 1 \boldsymbol p_1 p1 to p 3 \boldsymbol p_3 p3.

b. C 1 C^1 C1 continuity means that y ′ ( 0 ) = x ′ ( 1 ) \boldsymbol y'(0)=\boldsymbol x'(1) y(0)=x(1). Thus 2 ( p 3 − p 2 ) = 2 ( p 2 − p 1 ) 2(\boldsymbol p_3-\boldsymbol p_2)= 2(\boldsymbol p_2-\boldsymbol p_1) 2(p3p2)=2(p2p1), so p 2 = ( p 1 + p 3 ) / 2 \boldsymbol p_2=(\boldsymbol p_1+\boldsymbol p_3)/2 p2=(p1+p3)/2. Geometrically, p 2 \boldsymbol p_2 p2 is the midpoint of the line segment from p 1 \boldsymbol p_1 p1 to p 3 \boldsymbol p_3 p3. See Figure 3.

It can be seen that a cubic Bézier curve is completely determined by x ( 0 ) , x ′ ( 0 ) , x ( 1 ) \boldsymbol x(0), \boldsymbol x'(0), \boldsymbol x(1) x(0),x(0),x(1), and x ′ ( 1 ) \boldsymbol x'(1) x(1).

Figure 4 shows C 1 C^1 C1 continuity for two cubic Bézier curves. Notice how the point joining the two segments lies in the middle of the line segment between the adjacent control points.

在这里插入图片描述

Surprisingly, if x ( t ) \boldsymbol x(t) x(t) and y ( t ) \boldsymbol y(t) y(t) join at p 3 \boldsymbol p^3 p3, the apparent smoothness of the curve at p 3 \boldsymbol p_3 p3 is usually the same for both G 1 G^1 G1 continuity and C 1 C^1 C1 continuity. This is because the magnitude of x ′ ( t ) \boldsymbol x'(t) x(t) is not related to the physical shape of the curve. The magnitude reflects only the mathematical parameterization of the curve.

Two curves have C 2 \boldsymbol C^2 C2 (parametric) continuity when they have C 1 C^1 C1 continuity and the second derivatives x ′ ′ ( 1 ) \boldsymbol x''(1) x(1) and y ′ ′ ( 0 ) \boldsymbol y''(0) y(0) are equal. This is possible for cubic Bézier curves, but it severely limits the positions of the control points.


In practice, many simple Bézier curves are joined to create graphics objects. Typesetting(排版) programs provide one important application, because many letters in a type font involve curved segments. Each letter in a PostScript font, for example, is stored as a set of control points, along with information on how to construct the “outline” of the letter using line segments and Bézier curves. Enlarging such a letter basically requires multiplying the coordinates of each control point by one constant scale factor. Once the outline of the letter has been computed, the appropriate solid parts of the letter are filled in. Figure 5 illustrates this for a character in a PostScript font. Note the control points.

在这里插入图片描述

B- s p l i n e s splines splines B-样条曲线

A s p l i n e spline spline (样条曲线) usually refers to a curve that passes through specified points. A B-spline, however, usually does not pass through its control points. A single segment has the parametric form

在这里插入图片描述
for 0 ≤ t ≤ 1 0\leq t\leq 1 0t1, where p 0 , p 1 , p 2 \boldsymbol p_0, \boldsymbol p_1, \boldsymbol p_2 p0,p1,p2, and p 3 \boldsymbol p_3 p3 are the control points. When t t t varies from 0 0 0 to 1 1 1, x ( t ) \boldsymbol x(t) x(t) creates a short curve that lies close to p 1 p 2 ‾ \overline{\boldsymbol p_1\boldsymbol p_2} p1p2. Basic algebra shows that the B-spline formula can also be written as

在这里插入图片描述
This shows the similarity with the Bézier curve. Except for the 1 / 6 1/6 1/6 factor at the front, the p 0 \boldsymbol p_0 p0 and p 3 \boldsymbol p_3 p3 terms are the same. The p 1 \boldsymbol p_1 p1 component has been increased by − 3 t + 4 -3t+ 4 3t+4 and the p 2 \boldsymbol p_2 p2 component has been increased by 3 t + 1 3t+ 1 3t+1. These components move the curve closer to p 1 p 2 ‾ \overline{\boldsymbol p_1\boldsymbol p_2} p1p2 than the Bézier curve. The 1 / 6 1/6 1/6 factor is necessary to keep the sum of the coefficients equal to 1. Figure 10 compares a B-spline with a Bézier curve that has the same control points.

在这里插入图片描述
B- s p l i n e s splines splines always have C 2 C^2 C2 continuity because each pair of curves share three control points rather than one. This higher-order continuity is desirable in CAD applications such as automotive body design, since the curves and surfaces appear much smoother. However, B-splines require three times the computation of Bézier curves, for curves of comparable length. For surfaces, B-splines require nine times the computation of Bézier surfaces. Programmers often choose Bézier surfaces for applications (such as an airplane cockpit simulator) that require real-time rendering.

Matrix Equations for Bézier Curves

Since a Bézier curve is a linear combination of control points using polynomials as weights, the formula for x ( t ) \boldsymbol x(t) x(t) may be written as

在这里插入图片描述
The matrix whose columns are the four control points is called a geometry matrix, G G G. The 4 × 4 4\times 4 4×4 matrix of polynomial coefficients is the Bézier basis matrix, M B M_B MB. If u ( t ) \boldsymbol u(t) u(t) is the column vector of powers of t t t , then the Bézier curve is given by

在这里插入图片描述

Other parametric cubic curves in computer graphics are written in this form, too. For instance, if the entries in the matrix M B M_B MB are changed appropriately, the resulting curves are B-splines. A Hermite cubic curve (埃尔米特三次曲线) arises when the matrix M B M_B MB is replaced by a Hermite basis matrix. In this case, the columns of the geometry matrix consist of the starting and ending points of the curves and the tangent vectors to the curves at those points.

The Bézier curve in equation (4) can also be “factored” in another way, to be used in the discussion of Bézier surfaces. For convenience later, the parameter t t t is replaced by a parameter s s s:

在这里插入图片描述
The matrix of control points in (5) is called a geometry vector.

Bézier Surfaces

A 3D bicubic surface patch (双三次曲面片) can be constructed from a set of four Bézier curves. Consider the four geometry matrices

在这里插入图片描述
and recall from equation (4) that a Bézier curve is produced when any one of these matrices is multiplied on the right by the following vector of weights:

在这里插入图片描述
Let G G G be the block (partitioned) 4 × 4 4\times4 4×4 matrix whose entries are the control points p i j \boldsymbol p_{ij} pij displayed above. Then the following product is a block 4 × 1 4\times 1 4×1 matrix, and each entry is a Bézier curve:

在这里插入图片描述
In fact,

在这里插入图片描述
Now fix t t t . Then G M B u ( t ) GM_B\boldsymbol u(t) GMBu(t) is a column vector that can be used as a geometry vector in equation (5) for a Bézier curve in another variable s s s. This observation produces the Bézier bicubic surface:

在这里插入图片描述
The formula for x ( s , t ) \boldsymbol x(s, t) x(s,t) is a linear combination of the sixteen control points. If one imagines that these control points are arranged in a fairly uniform rectangular array, as in Figure 6, then the Bézier surface is controlled by a web of eight Bézier curves, four in the “ s s s-direction” and four in the “ t t t-direction.” The surface actually passes through the four control points at its “corners.” When it is in the middle of a larger surface, the sixteen-point surface shares its twelve boundary control points with its neighbors.

在这里插入图片描述

Approximations to Curves and Surfaces

In CAD programs and in programs used to create realistic computer games, the designer often works at a graphics workstation to compose a “scene” involving various geometric structures. This process requires interaction between the designer and the geometric objects. Each slight repositioning of an object requires new mathematical computations by the graphics program. Bézier curves and surfaces can be useful in this process because they involve fewer control points than objects approximated by many polygons. This dramatically reduces the computation time and speeds up the designer’s work.

After the scene composition, however, the final image preparation has different computational demands that are more easily met by objects consisting of flat surfaces and straight edges, such as polyhedra(多面体). The designer needs to render the scene, by introducing light sources, adding color and texture to surfaces, and simulating reflections from the surfaces.

Computing the direction of a reflected light at a point p \boldsymbol p p on a surface, for instance, requires knowing the directions of both the incoming light and the s u r f a c e surface surface n o r m a l normal normal—the vector perpendicular to the tangent plane at p \boldsymbol p p. Computing such normal vectors is much easier on a surface composed of, say, tiny flat polygons than on a curved surface whose normal vector changes continuously as p \boldsymbol p p moves. If p 1 , p 2 \boldsymbol p_1, \boldsymbol p_2 p1,p2, and p 3 \boldsymbol p_3 p3 are adjacent vertices of a flat polygon, then the surface normal is just plus or minus the cross product ( p 2 − p 1 ) × ( p 2 − p 3 ) (\boldsymbol p_2-\boldsymbol p_1)\times(\boldsymbol p_2-\boldsymbol p_3) (p2p1)×(p2p3).

As a result of these needs for flat surfaces, the Bézier curves and surfaces from the scene composition stage now are usually approximated by straight line segments and polyhedral surfaces. The basic idea for approximating a Bézier curve or surface is to divide the curve or surface into smaller pieces, with more and more control points.

Recursive Subdivision of Bézier Curves and Surfaces 贝塞尔曲线与曲面的递归细分

Figure 7 shows the four control points p 0 , . . . , p 3 \boldsymbol p_0,...,\boldsymbol p_3 p0,...,p3 for a Bézier curve, along with control points for two new curves, each coinciding with half of the original curve. The “left” curve begins at q 0 = p 0 \boldsymbol q_0=\boldsymbol p_0 q0=p0 and ends at q 3 \boldsymbol q_3 q3, at the midpoint of the original curve. The “right” curve begins at r 0 = q 3 \boldsymbol r_0=\boldsymbol q_3 r0=q3 and ends at r 3 = p 3 \boldsymbol r_3=\boldsymbol p_3 r3=p3.

在这里插入图片描述
Figure 8 shows how the new control points enclose regions that are “thinner” than the region enclosed by the original control points. As the distances between the control points decrease, the control points of each curve segment also move closer to a line segment. This variation-diminishing property(变量-减小性质) of Bézier curves depends on the fact that a Bézier curve always lies in the convex hull of the control points.

在这里插入图片描述

The new control points are related to the original control points by simple formulas. Of course, q 0 = p 0 \boldsymbol q_0=\boldsymbol p_0 q0=p0 and r 3 = p 3 \boldsymbol r_3=\boldsymbol p_3 r3=p3. The midpoint of the original curve x ( t ) \boldsymbol x(t) x(t) occurs at x ( . 5 ) \boldsymbol x(.5) x(.5) when x ( t ) \boldsymbol x(t) x(t) has the standard parameterization,

在这里插入图片描述

for 0 ≤ t ≤ 1 0\leq t \leq 1 0t1. Thus, the new control points q 3 \boldsymbol q_3 q3 and r 0 \boldsymbol r_0 r0 are given by

在这里插入图片描述

The formulas for the remaining “interior” control points are also simple, but the derivation of the formulas requires some work involving the tangent vectors of the curves. For the Bézier curve in (7),

在这里插入图片描述

for 0 ≤ t ≤ 1 0\leq t \leq 1 0t1. In particular,

在这里插入图片描述

Geometrically, p 1 \boldsymbol p_1 p1 is on the line tangent to the curve at p 0 \boldsymbol p_0 p0, and p 2 \boldsymbol p_2 p2 is on the line tangent to the curve at p 3 \boldsymbol p_3 p3. See Figure 8. Also, from x ′ ( t ) \boldsymbol x'(t) x(t), compute

在这里插入图片描述

Let y ( t ) \boldsymbol y(t) y(t) be the Bézier curve determined by q 0 , . . . , q 3 \boldsymbol q_0,..., \boldsymbol q_3 q0,...,q3, and let z ( t ) \boldsymbol z(t) z(t) be the Bézier curve determined by r 0 , . . . , r 3 \boldsymbol r_0,..., \boldsymbol r_3 r0,...,r3. Since y ( t ) \boldsymbol y(t) y(t) traverses the same path as x ( t ) \boldsymbol x(t) x(t) but only gets to x ( . 5 ) x(.5) x(.5) as t t t goes from 0 0 0 to 1 1 1, y ( t ) = x ( . 5 t ) \boldsymbol y(t)=\boldsymbol x(.5t) y(t)=x(.5t) for 0 ≤ t ≤ 1 0\leq t\leq 1 0t1. Similarly, since z ( t ) \boldsymbol z(t) z(t) starts at x ( . 5 ) \boldsymbol x(.5) x(.5) when t = 0 t= 0 t=0, z ( t ) = x ( . 5 + . 5 t ) \boldsymbol z(t)=\boldsymbol x(.5+.5t) z(t)=x(.5+.5t) for 0 ≤ t ≤ 1 0\leq t\leq 1 0t1. By the chain rule for derivatives,

在这里插入图片描述

From (9) with y ′ ( 0 ) \boldsymbol y'(0) y(0) in place of x ′ ( 0 ) \boldsymbol x'(0) x(0), from (11) with t = 0 t=0 t=0, the control points for y ( t ) \boldsymbol y(t) y(t) satisfy

在这里插入图片描述

From (9) with y ′ ( 1 ) \boldsymbol y'(1) y(1) in place of x ′ ( 1 ) \boldsymbol x'(1) x(1), from ( 11 ) (11) (11) with t = 1 t=1 t=1, and from (10),

在这里插入图片描述

Equations (8), (9), (10), (12), and (13) can be solved to produce the formulas for q 0 , . . . , q 3 \boldsymbol q_0,...,\boldsymbol q_3 q0,...,q3. Geometrically, the formulas are displayed in Figure 9. The interior control points q 1 \boldsymbol q_1 q1 and r 2 \boldsymbol r_2 r2 are the midpoints, respectively, of the segment from p 0 \boldsymbol p_0 p0 to p 1 \boldsymbol p_1 p1 and the segment from p 2 \boldsymbol p_2 p2 to p 3 \boldsymbol p_3 p3. When the midpoint of the segment from p 1 \boldsymbol p_1 p1 to p 2 \boldsymbol p_2 p2 is connected to q 1 \boldsymbol q_1 q1, the resulting line segment has q 2 \boldsymbol q_2 q2 in the middle!

在这里插入图片描述

Observe Figure 9 and it can be seen that the control points for both y ( t ) \boldsymbol y(t) y(t) and z ( t ) \boldsymbol z(t) z(t) can be computed in an efficient manner. The only operations needed are sums and division by 2.

This completes one step of the subdivision process. The “recursion” begins, and both new curves are subdivided. The recursion continues to a depth at which all curves are sufficiently straight. Alternatively, at each step the recursion can be “adaptive” and not subdivide one of the two new curves if that curve is sufficiently straight. Once the subdivision completely stops, the endpoints of each curve are joined by line segments, and the scene is ready for the next step in the final image preparation.


A Bézier bicubic surface has the same variation-diminishing property as the Bézier curves that make up each cross-section of the surface, so the process described above can be applied in each cross-section. With the details omitted, here is the basic strategy. Consider the four “parallel” Bézier curves whose parameter is s s s, and apply the subdivision process to each of them. This produces four sets of eight control points; each set determines a curve as s s s varies from 0 0 0 to 1 1 1. As t t t varies, however, there are eight curves, each with four control points. Apply the subdivision process to each of these sets of four points, creating a total of 64 control points. Adaptive recursion is possible in this setting, too, but there are some subtleties involved.

在这里插入图片描述