ABSTRACT

So far, we have covered the basic surface theory. We will now learn to use surfaces for several applications.

7.1 Bicubic Interpolation This is one of the simplest surface construction methods. Its uses are limited, but it prepares us for more general approaches. Suppose

you are given 16 points pi,j arranged as in Sketch 56 and also a pair

x(u, v), that

⎡ ⎢⎢⎣ p0,0 p0,1 p0,2 p0,3 p1,0 p1,1 p1,2 p1,3 p2,0 p2,1 p2,2 p2,3 p3,0 p3,1 p3,2 p3,3

⎤ ⎥⎥⎦ =

⎡ ⎢⎢⎣ x(u0, v0) x(u0, v1) x(u0, v2) x(u0, v3) x(u1, v0) x(u1, v1) x(u1, v2) x(u1, v3) x(u2, v0) x(u2, v1) x(u2, v2) x(u2, v3) x(u3, v0) x(u3, v1) x(u3, v2) x(u3, v3)

⎤ ⎥⎥⎦.(7.1)

Following the matrix notation of Section 6.3, we may write each x(ui, vj) as a matrix product. We list an example:

x(u1, v2) =

[ B30(u1)B

] ⎡ ⎢⎢⎣ b0,0 b0,1 b0,2 b0,3 b1,0 b1,1 b1,2 b1,3 b2,0 b2,1 b2,2 b2,3 b3,0 b3,1 b3,2 b3,3

⎤ ⎥⎥⎦

⎡ ⎢⎢⎣ B30(v2) B31(v2) B32(v2) B33(v2)

⎤ ⎥⎥⎦.(7.2)

We may combine all individual equations for the x(ui, vj) into one matrix equation:

P = MTBN (7.3)

where P is the given matrix of data points as in (7.1) and B is the matrix containing the unknown control points bi,j . The matrix M

contains the values of the Bernstein polynomials at the given parameters:

MT =

⎡ ⎢⎢⎣

B30(u0) B 3 1(u0) B

3 2(u0) B

B30(u1) B 3 1(u1) B

3 2(u1) B

B30(u2) B 3 1(u2) B

3 2(u2) B

B30(u3) B 3 1(u3) B

3 2(u3) B

⎤ ⎥⎥⎦ ,

and N is given by

N =

⎡ ⎢⎢⎣

B30(v0) B 3 0(v1) B

3 0(v2) B

B31(v0) B 3 1(v1) B

3 1(v2) B

B32(v0) B 3 2(v1) B

3 2(v2) B

B33(v0) B 3 3(v1) B

3 3(v2) B

⎤ ⎥⎥⎦ .