Hodographs and Normals of Rational Curves and ... - Semantic Scholar

Report 1 Downloads 77 Views
Brigham Young University

BYU ScholarsArchive All Faculty Publications

1995-06-01

Hodographs and Normals of Rational Curves and Surfaces Thomas W. Sederberg [email protected]

Takafumi Saito Guo-Jin Wang

Follow this and additional works at: http://scholarsarchive.byu.edu/facpub Part of the Computer Sciences Commons Recommended Citation Sederberg, Thomas W.; Saito, Takafumi; and Wang, Guo-Jin, "Hodographs and Normals of Rational Curves and Surfaces" (1995). All Faculty Publications. Paper 1161. http://scholarsarchive.byu.edu/facpub/1161

This Peer-Reviewed Article is brought to you for free and open access by BYU ScholarsArchive. It has been accepted for inclusion in All Faculty Publications by an authorized administrator of BYU ScholarsArchive. For more information, please contact [email protected].

Hodographs and Normals of Rational Curves and Surfaces Takafumi Saito Nippon Telegraph and Telephone Co.

Guo-Jin Wang Zhejiang University

Thomas W. Sederberg Brigham Young University

1995

Abstract Derivatives and normals of rational B´ezier curves and surface patches are discussed. A nonuniformly scaled hodograph of a degree m × n tensor-product rational surface, which provides correct derivative direction but not magnitude, can be written as a degree (2m − 2) × 2n or 2m × (2n−2) vector function in polynomial B´ezier form. Likewise, the scaled normal direction is degree (3m−2) × (3n−2). Efficient methods are developed for bounding these directions and the derivative magnitude.

1

Introduction

Derivatives and normal vectors of parametric curves and surfaces are important issues in computer graphics and geometric modeling. Although the derivative at any single point on a B´ezier curve or surface can be calculated by subdivision, it is often useful to assess the possible range of derivatives or normal vectors for an entire curve segment of surface patch. For example, cusps and inflection points on a curve can be detected by this analysis. Bounds of derivative and normal directions also help in detecting intersections between two curves or surfaces [Sederberg ’88][Hohmeyer ’92]. In various other algorithms for curves and surfaces, efficiency can often be enhanced by a priori determination of a bound on derivative magnitude. The first derivative of a curve is sometimes called its hodograph. It is well-known that the hodograph of a degree n polynomial B´ezier curve can be expressed as a degree n−1 polynomial B´ezier curve. For a tensor-product surface, the hodograph is defined as the partial derivative of the surface with respect to each parameter s or t. If the surface is a polynomial B´ezier patch of degree m in s and n in t, the hodographs are also tensor-product, and the degree of the s-hodograph is m−1 in s and n in t, while the degree of the t-hodograph is m × (n−1) [Boehm ’84]. Since the normal direction can be obtained as the cross product of the s- and t-hodographs, its degree is (2m−1) × (2n−1). These simple results, however, don’t apply to rational curves and surfaces. The hodograph of a degree n rational curve is a rational curve of degree 2n. Since derivative direction is often more important than magnitude, [Sederberg ’87] proposed a scaled hodograph, which expresses only the derivative direction, and is a degree 2n − 2 polynomial B´ezier curve. [Floater ’92] provided

Page 1

Hodograph

T. Saito

1995

Page 2

upper bounds of first and higher order derivative magnitudes for rational B´ezier curves. However, derivatives and normals of rational surfaces have not been widely addressed. We introduce a new approach for representing hodographs and normals. First, we apply it to rational curves and reconfirm the hodographs and the bounds of derivatives introduced by [Sederberg ’87] and [Floater ’92]. We then apply it to rational surfaces to get scaled hodographs and normal direction in polynomial B´ezier form, from which we devise efficient methods for bounding their direction and magnitude. In this paper, curve generally means rational B´ezier curve, and surface means rational tensorproduct B´ezier patch. Also, note that scaled hodographs provide exact directions, but not magnitudes.

2

Rational Curves

In this section, we explain a new approach for bounding the derivative direction and magnitude of a curve. Although the final results are identical to those presented in [Sederberg ’87] and [Floater ’92], this new method extends directly to surfaces.

2.1

Direction Between Two Homogeneous Points

In projective geometry, points are usually specified in homogeneous form. A homogeneous point P = (X, Y, Z, W )

(1)

has the Cartesian coordinates ˜ = (x, y, z) = P



X Y Z , , W W W

 .

(2)

In this paper, a single character in bold typeface signifies a homogeneous point, while one with a tilde denotes a Cartesian point or vector. To aid in our discussion, we define: Dir(P1 , P2 ) ≡ (W1 X2 − W2 X1 , W1 Y2 − W2 Y1 , W1 Z2 − W2 Z1 )

(3)

where Pi = (Xi , Yi , Zi , Wi ). The ‘Dir’ function indicates the direction of the Cartesian vector between two points, because ˜2 − P ˜ 1) Dir(P1 , P2 ) = W1 W2 (P (4) if W1 W2 6= 0. Furthermore, one can easily verify that ‘Dir’ satisfies the following relations: Dir(P1 , P1 ) = 0 Dir(P1 , P2 ) = −Dir(P2 , P1 ) Dir(kP1 , P2 ) = Dir(P1 , kP2 ) = k Dir(P1 , P2 ) Dir(P1 + P2 , P3 ) = Dir(P1 , P3 ) + Dir(P2 , P3 ) Dir(P1 , P2 + P3 ) = Dir(P1 , P2 ) + Dir(P1 , P3 ), where k is a scalar value.

(5)

Hodograph

2.2

T. Saito

1995

Page 3

Hodograph of a Rational Curve

A rational B´ezier curve P[t] is defined with homogeneous control points Pi = (Xi , Yi , Zi , Wi ) : P[t] = (X[t], Y [t], Z[t], W [t]) n X = Bin [t]Pi ,

(6)

i=0

where Bin [t]

  n = (1 − t)n−i ti , i

(7)

and n is the degree of the curve. In this paper, we assume that all Wi > 0. The derivative of the curve in homogeneous coordinates is  P0 [t] = X 0 [t], Y 0 [t], Z 0 [t], W 0 [t] = n

n−1 X

Bin−1 [t] (Pi+1 − Pi )

(8)

i=0

and the derivative in Cartesian coordinates is   d˜ d X[t] Y [t] Z[t] P[t] = , , dt dt W [t] W [t] W [t] (W [t]X 0 [t] − W 0 [t]X[t], W [t]Y 0 [t] − W 0 [t]Y [t], W [t]Z 0 [t] − W 0 [t]Z[t]) = (W [t])2 Dir(P[t], P0 [t]) = . (W [t])2

(9)

Since (W [t])2 is a scalar function, Dir(P[t], P0 [t]) gives the derivative direction in Cartesian coordinate. One might expect that the degree of Dir(P[t], P0 [t]) is 2n−1. However, the degree is at most 2n−2, which is shown as follows. Write P[t] = (1 − t)F0 [t] + t F1 [t] 0

P [t] = n(F1 [t] − F0 [t]),

(10) (11)

where F0 [t] = F1 [t] =

n−1 X i=0 n X i=1

Bin−1 [t] Pi

(12)

n−1 Bi−1 [t] Pi .

(13)

Hodograph

T. Saito

1995

Page 4

Therefore, Dir P[t], P0 [t]



= Dir ((1 − t)F0 [t], n F1 [t]) − Dir (t F1 [t], n F0 [t]) = n Dir(F0 [t], F1 [t]) 2n−2 X = n (1 − t)2n−2−k tk k=0

X

   n−1 n−1 Dir (Pi , Pj ). i j−1

(14)

i+j=k+1 0≤i≤n−1 1≤j≤n

For each combination of i and j which satisfies i + j = k + 1,       n−1 n−1 n−1 n−1 Dir(Pi , Pj ) + Dir(Pj , Pi ) i j−1 j i−1       n−1 n−1 n−1 n−1 = − Dir(Pi , Pj ) i j−1 j i−1    n n j−i Dir (Pi , Pj ) = n i j    n n k − 2i + 1 = Dir (Pi , Pk−i+1 ) . i k−i+1 n

(15)

Having eliminated j, we get  Dir P[t], P0 [t] =

2n−2 X

bk/2c

(1 − t)

t

k=0

=

2n−2 X

X

2n−2−k k

i=max(0,k−n+1)

   n n (k − 2i + 1) Dir (Pi , Pk−i+1 ) i k−i+1

˜k Bk2n−2 [t] H

(16)

k=0

and

2n−2 X d˜ 1 ˜k P[t] = Bk2n−2 [t] H dt (W [t])2

(17)

k=0

where ˜k = H

bk/2c

1

X

2n−2 k

 i=max(0,k−n+1)

   n n (k − 2i + 1) Dir (Pi , Pk−i+1 ). i k−i+1

(18)

˜ k (0 ≤ k ≤ 2n−2). Equation (17) Equation (16) gives a scaled hodograph, and its control points are H gives the hodograph with the correct magnitude. These results are equivalent to the hodographs in [Sederberg ’87]. For a rational cubic B´ezier curve, the scaled hodograph is degree four with control

Hodograph

T. Saito

1995

Page 5

points: ˜ 0 = 3 Dir(P0 , P1 ) H ˜ 1 = 3 Dir(P0 , P2 ) H 2 ˜ 2 = 1 Dir(P0 , P3 ) + 3 Dir(P1 , P2 ) H 2 2 3 ˜3 = H Dir(P1 , P3 ) 2 ˜ 4 = 3 Dir(P2 , P3 ). H

2.3

(19)

Bound of Derivative Direction

In equation (18), each coefficient of Dir(Pi , Pk−i+1 ) is positive. This guarantees that the derivative direction is bounded by the convex hull of the vectors Dir(Pa , Pb ) (0 ≤ a < b ≤ n). For each Dir(Pa , Pb ),   ˜b − P ˜a Dir (Pa , Pb ) = Wa Wb P = Wa Wb

b−1  X

 ˜ i+1 − P ˜i , P

(20)

i=a

˜ i+1 − P ˜ i (i = which shows that Dir(Pa , Pb ) is bounded by the convex hull of the b − a vectors P 0 a, a+1, . . . , b−1). As a result, Dir(P[t], P [t]) (0 ≤ t ≤ 1) can be bounded by the convex hull of the ˜ i+1 − P ˜ i (i = 0, 1, . . . , n−1). This result is commonly used for polynomial curves, but n vectors P here we note that the bound is not violated if arbitrary positive weights are assigned to the control points of a polynomial B´ezier curve.

2.4

Bound of Derivative Magnitude

We can also derive an upper bound of the derivative magnitude in the following way. Define Wmax ≡ Wmin ≡ Dmax ≡

max Wi

(21)

min Wi

˜

˜ − P max P i+1 i .

(22)

0≤i≤n 0≤i≤n

0≤i≤n−1

(23)

It is obvious that Wmin ≤ W [t] ≤ Wmax

(0 ≤ t ≤ 1).

(24)

We also invoke the identity bk/2c

X

     n n 2n − 2 (k − 2i + 1) =n i k−i+1 k

i=max(0,k−n+1)

2

(25)

Hodograph

T. Saito

1995

Page 6

which can be proven by applying equation (16) to the curve P (t) = (t, 0, 0, 1). In this case, ˜ k = (1, 0, 0) for k = Dir(P (t), P 0 (t)) = (1, 0, 0) and Pi = ( ni , 0, 0, 1). From (16) it follows that H j−i 0, 1, . . . , 2n − 2. Inserting this identity and Dir(Pi , Pj ) = ( n , 0, 0) in (18) one obtains (25). Dir(Pa , Pb ) (0 ≤ a < b ≤ 1) can be bounded as follows:



˜ ˜ kDir(Pa , Pb )k = Wa Wb P − P a b ≤ Wa Wb ≤

b−1

X

˜ ˜ i

Pi+1 − P

i=a 2 Wmax (b −

a)Dmax .

(26)

From equations (18), (25), and (26),

d

P[t] ˜ ≤

dt

=

2n−2 2 D X nWmax max Bk2n−2 [t] 2 Wmin k=0

2 D nWmax max . 2 Wmin

(27)

This result is equivalent to [Floater ’92].

3

Rational Surfaces

3.1

Hodograph for Each Parameter Direction

A tensor-product rational B´ezier surface P[s, t] is defined with homogeneous control points Pi,j = (Xi,j , Yi,j , Zi,j , Wi,j ) : P[s, t] = (X[s, t], Y [s, t], Z[s, t], W [s, t]) m X n X = Bim [s]Bjn [t] Pi,j .

(28)

i=0 j=0

For such a surface, the derivative direction is defined independently for each parameter s, t. The s-derivative in Cartesian coordinates is   ∂ ˜ ∂ X[s, t] Y [s, t] Z[s, t] P[s, t] = , , ∂s ∂s W [s, t] W [s, t] W [s, t] 1 = (W [s, t]Xs [s, t] − Ws [s, t]X[s, t], (W [s, t])2 W [s, t]Ys [s, t] − Ws [s, t]Y [s, t], W [s, t]Zs [s, t] − Ws [s, t]Z[s, t]) Dir (P[s, t], Ps [s, t]) = , (29) (W [s, t])2 where Ps [s, t] = (Xs [s, t], Ys [s, t], Zs [s, t], Ws [s, t]) , Xs [s, t] =

∂ X[s, t], ∂s

Ys [s, t] =

∂ Y [s, t], ∂s

... .

Hodograph

T. Saito

1995

Page 7

Thus, the s- derivative direction in Cartesian coordinates can be defined as Dir(P[s, t], Ps [s, t]). In this section, we only focus on the s-derivative direction; the t-derivative direction can be derived in like manner. The surface P[s, t] can be expressed, P[s, t] =

m X

Bim [s] Qi [t],

(30)

Bjn [t] Pi,j .

(31)

i=0

where Qi [t] =

n X j=0

Notice that equation (30) can be interpreted as a curve with the parameter s, with control points Qi [t]. This means that the s-derivative of P[s, t] can be viewed as simply the derivative of a curve. Thus, we can apply equation (16), Dir (P[s, t], Ps [s, t]) =

2m−2 X

bk/2c

X

2m−2−k k

(1 − s)

s

k=0

i=max(0,k−m+1)

   m m (k − 2i + 1) Dir (Qi [t], Qk−i+1 [t]). (32) i k−i+1

The next step is to compute Dir(Qa [t], Qb [t]) (0 ≤ a < b ≤ m). In an expression reminiscent of the curve case, we have Dir (Qa [t], Qb [t]) =

2n X

min(l,n)

X

(1 − t)2n−l tl

l=0

j=max(0,l−n)

   n n Dir (Pa,j , Pb,l−j ). l−j j

(33)

From equations (32) and (33), Dir (P[s, t], Ps [s, t]) =

2m−2 2n X X

˜ k,l Bk2m−2 [s]Bl2n [t] H

(34)

k=0 l=0

and 2m−2 2n X X ∂ ˜ 1 ˜ k,l , P[s, t] = Bk2m−2 [s]Bl2n [t] H ∂s (W [s, t])2

(35)

k=0 l=0

where Pbk/2c ˜ k,l = H

i=max(0,k−m+1)

Pmin(l,n)

j=max(0,l−n) (k

− 2i + 1)  2m−2 k

m m i k−i+1  2n l



 n j

n l−j



Dir (Pi,j , Pk−i+1,l−j )

. (36)

˜ k,l . Equation (35) is the Equation (34) gives a scaled hodograph for s, and its control points are H hodograph for s with the correct magnitude.

Hodograph

T. Saito

1995

Page 8

The degree of the scaled hodograph is 2m−2 in s and 2n in t. For a rational bilinear surface, the degree of the hodograph is 0 in s and 2 in t, and its control points are ˜ 0,0 = Dir(P0,0 , P1,0 ) H ˜ 0,1 = 1 Dir(P0,0 , P1,1 ) + 1 Dir(P0,1 , P1,0 ) H 2 2 ˜ H0,2 = Dir(P0,1 , P1,1 ).

(37)

For a rational biquadratic surface, the hodograph is degree 2 × 4, and its control points are ˜ 0,0 = 2 Dir(P0,0 , P1,0 ) H ˜ 0,1 = Dir(P0,0 , P1,1 ) + Dir(P0,1 , P1,0 ) H ˜ 0,2 = 1 Dir(P0,0 , P1,2 ) + 4 Dir(P0,1 , P1,1 ) + 1 Dir(P0,2 , P1,0 ) H 3 3 3 ˜ H0,3 = Dir(P0,1 , P1,2 ) + Dir(P0,2 , P1,1 ) ˜ 0,4 = 2 Dir(P0,2 , P1,2 ) H ˜ 1,0 = Dir(P0,0 , P2,0 ) H ˜ 1,1 = 1 Dir(P0,0 , P2,1 ) + H 2 1 ˜ H1,2 = Dir(P0,0 , P2,2 ) + 6 ˜ 1,3 = 1 Dir(P0,1 , P2,2 ) + H 2 ˜ H1,4 = Dir(P0,2 , P2,2 ) ˜ 2,0 = 2 Dir(P1,0 , P2,0 ) H

1 Dir(P0,1 , P2,0 ) 2 2 1 Dir(P0,1 , P2,1 ) + Dir(P0,2 , P2,0 ) 3 6 1 Dir(P0,2 , P2,1 ) 2

(38)

˜ 2,1 = Dir(P1,0 , P2,1 ) + Dir(P1,1 , P2,0 ) H ˜ 2,2 = 1 Dir(P1,0 , P2,2 ) + 4 Dir(P1,1 , P2,1 ) + 1 Dir(P1,2 , P2,0 ) H 3 3 3 ˜ 2,3 = Dir(P1,1 , P2,2 ) + Dir(P1,2 , P2,1 ) H ˜ 2,4 = 2 Dir(P1,2 , P2,2 ). H Figure 1 (a) shows the structure of these control points.

3.2

Bound of Derivative Direction

Though (2m−1)(2n+1) control points are required for the scaled hodograph, the derivative direction can be bounded by smaller number of vectors. For equation (32), the method in section 2.3 can be applied, and thus, Dir(P[s, t], Ps [s, t]) can be bounded by the convex hull of the m vectors Dir(Qi [t], Qi+1 [t]) (i = 0, 1, . . . , m − 1). For equation (33), however, Dir(Qa [t], Qb [t]) cannot be bounded in such a way. Therefore, Dir(P[s, t], Ps [s, t]) can be bounded by the convex hull of the m(2n+1) vectors min(l,n)

X j=max(0,l−n)

   n n Dir (Pi,j , Pi+1,l−j ) j l−j

(i = 0, 1, . . . , m−1; l = 0, 1, . . . , 2n).

(39)

Hodograph

T. Saito

H 0,4

H 1,4

H 2,4

H 0,3

H 1,3

H 2,3

H 0,2

H 1,2

H 2,2

H 0,1

H 1,1

H 2,1

H 0,0

H 1,0

H 2,0

(a) Control points of hodograph

1995

Page 9

P 0,2

P 1,2

P 2,2

P 0,1

P 1,1

P 2,1

P 0,0

P 1,0

P 2,0

t

s

(b) Vectors for bounding

Figure 1: s-Derivative of Rational Biquadratic Surface For example, the s-derivative direction of a biquadratic patch can be bounded by following 10 vectors: Dir(P0,0 , P1,0 ) 2 Dir(P0,0 , P1,1 ) + 2 Dir(P0,1 , P1,0 ) Dir(P0,0 , P1,2 ) + 4 Dir(P0,1 , P1,1 ) + Dir(P0,2 , P1,0 ) 2 Dir(P0,1 , P1,2 ) + 2 Dir(P0,2 , P1,1 ) Dir(P0,2 , P1,2 ) (40) Dir(P1,0 , P2,0 ) 2 Dir(P1,0 , P2,1 ) + 2 Dir(P1,1 , P2,0 ) Dir(P1,0 , P2,2 ) + 4 Dir(P1,1 , P2,1 ) + Dir(P1,2 , P2,0 ) 2 Dir(P1,1 , P2,2 ) + 2 Dir(P1,2 , P2,1 ) Dir(P1,2 , P2,2 ). Figure 1 (b) shows the structure of these vectors.

3.3

Bound of Derivative Magnitude

An upper bound of the derivative magnitude for a rational surface can be obtained in the following way. From equations (29) and (32), by applying the method used in section 2.4, the derivative

Hodograph

T. Saito

1995

Page 10

magnitude can be bounded with the control points Qi [t] in equation (31):









2m−2

   X X



m m−1 m−1 2m−2−k k

P[s,

˜ t] = Dir (Q [t], Q [t]) (1 − t) t i j

∂s

(W [s, t])2 i j−1

k=0

i+j=k+1



0≤i≤m−1



1≤j≤m

2 mWmax

˜ ˜ max Q (41) ≤ i+1 [t] − Qi [t] , 2 0≤i≤m−1 Wmin where Wmax ≡

max Wi,j ,

(42)

0≤i≤m 0≤j≤n

Wmin ≡

min Wi,j .

(43)

0≤i≤m 0≤j≤n

The distance between the control points Qi [t] can be bounded as follows:

kDir(Qi [t], Qi+1 [t])k

˜ ˜ i [t]

Qi+1 [t] − Q

= Wi [t]Wi+1 [t]



2n 2n    X X B [t] min(l,n)

n n 1 l

 Dir (Pi,j , Pi+1,l−j ) ≤

2n 2 j l−j Wmin

l l=0



j=max(0,l−n)

Smax 2 , Wmin

(44)

where Wi [t] denotes the weight of Qi [t], and



   min(l,n) X

1

n n

Smax ≡ max 2n Dir (Pi,j , Pi+1,l−j )

. l−j

0≤i≤m−1 l j=max(0,l−n) j

(45)

0≤l≤2n

Therefore, we get the following upper bound:

2



P[s, ˜ t] ≤ mWmax Smax .

∂s

4 Wmin

(46)

Notice that Smax is the maximum magnitude of the m(2n+1) vectors min(l,n)

1 2n l

X  j=max(0,l−n)

   n n Dir (Pi,j , Pi+1,l−j ) j l−j

(i = 0, 1, . . . , m−1; l = 0, 1, . . . , 2n),

(47)

each of which has the same direction as each vector in equation (39). This means that equation (47) forms a set of bounding vectors that can be used to bound both derivative direction and magnitude.

Hodograph

3.4

T. Saito

1995

Page 11

Normal Direction

The normal direction can be obtained simply by taking the cross product of the s- and t-scaled hodographs, where the degree of the normal direction is (4m−2) × (4n−2). [Hohmeyer ’92] pointed out that the degree can be reduced to (3m−1) × (3n−1). We show here that it can actually be reduced to (3m−2) × (3n−2). First of all, we define the notation:   Y1 Y2 Y3 Z1 Z2 Z3 X1 X2 X3 (48) Nrm(P1 , P2 , P3 ) ≡  Z1 Z2 Z3 , X1 X2 X3 , Y1 Y2 Y3  , W1 W2 W3 W1 W2 W3 W1 W2 W3 which provides a normal direction of three homogeneous points. This notation ‘Nrm’ satisfies the following relations: Nrm(P1 , P1 , P1 ) = Nrm(P2 , P1 , P1 ) = Nrm(P1 , P2 , P1 ) = Nrm(P1 , P1 , P2 ) = 0 Nrm(P1 , P2 , P3 ) = Nrm(P2 , P3 , P1 ) = Nrm(P3 , P1 , P2 ) = −Nrm(P1 , P3 , P2 ) = −Nrm(P2 , P1 , P3 ) = −Nrm(P3 , P2 , P1 ) Nrm(kP1 , P2 , P3 ) = Nrm(P1 , kP2 , P3 ) = Nrm(P1 , P2 , kP3 ) = k Nrm(P1 , P2 , P3 ) (49) Nrm(P1 + P2 , P3 , P4 ) = Nrm(P1 , P3 , P4 ) + Nrm(P2 , P3 , P4 ) Nrm(P1 , P2 + P3 , P4 ) = Nrm(P1 , P2 , P4 ) + Nrm(P1 , P3 , P4 ) Nrm(P1 , P2 , P3 + P4 ) = Nrm(P1 , P2 , P3 ) + Nrm(P1 , P2 , P4 ), where k is a scalar value. The normal direction at P[s, t] is given by Nrm(P[s, t], Ps [s, t], Pt [s, t]).

(50)

To calculate it efficiently, we define Sij as follows: S00 ≡

m−1 X n−1 X

Bim−1 [s]Bjn−1 [t] Pi,j

i=0 j=0

S10 ≡

m n−1 X X

m−1 Bi−1 [s]Bjn−1 [t] Pi,j

i=1 j=0

S01 ≡

m−1 n XX

n−1 Bim−1 [s]Bj−1 [t] Pi,j

i=0 j=1

S11 ≡

m X n X i=1 j=1

m−1 n−1 Bi−1 [s]Bj−1 [t] Pi,j .

(51)

Hodograph

T. Saito

1995

Page 12

Table 1: Degree of Scaled Hodographs and Normal Directions patch s-hodograph t-hodograph normal

bilinear 0×2 2×0 1×1

biquadratic 2×4 4×2 4×4

bicubic 4×6 6×4 7×7

m×n (2m − 2) × 2n 2m × (2n − 2) (3m − 2) × (3n − 2)

Then P, Ps , and Pt are simply expressed with Sij : P[s, t] = (1 − s)(1 − t) S00 + s(1 − t) S10 + (1 − s)t S01 + st S11 , m−1 n XX Ps [s, t] = m Bim−1 [s]Bjn [t] (Pi+1,j − Pi,j ) i=0 j=0

= m [(1 − t) S10 + t S11 − (1 − t) S00 − t S01 ] , m n−1 X X Pt [s, t] = n Bim [s]Bjn−1 [t] (Pi,j+1 − Pi,j )

(52)

i=0 j=0

= n [(1 − s) S01 + s S11 − (1 − s) S00 − s S10 ] . Substituting equations (52) into equation (50) and applying equation (49), we get Nrm (P[s, t], Ps [s, t], Pt [s, t]) = mn [(1 − s)(1 − t) Nrm(S00 , S10 , S01 ) + s(1 − t) Nrm(S00 , S10 , S11 ) + (1 − s)t Nrm(S00 , S11 , S01 ) + st Nrm(S10 , S11 , S01 )] .

(53)

Since the degree of Sij is (m−1) × (n−1), the degree of the normal direction is (3m−2) × (3n−2). For example, the normal direction of a bilinear surface is degree 1 × 1: Nrm (P[s, t], Ps [s, t], Pt [s, t]) = (1 − s)(1 − t) Nrm(P0,0 , P1,0 , P0,1 ) + s(1 − t) Nrm(P0,0 , P1,0 , P1,1 ) + (1 − s)t Nrm(P0,0 , P1,1 , P0,1 )

(54)

+ st Nrm(P1,0 , P1,1 , P0,1 ). Table 1 summarizes the degree of scaled hodographs and normal direction for rational surfaces.

3.5

Bound of Normal Direction

There are two ways to create a bound of the normal direction. One is from the bounds of sand t derivative directions, which is discussed in [Sederberg ’88] for polynomial surfaces: create a bounding cone for each derivative direction from which a bounding cone for the normals can be calculated. This idea can be applied to a rational surface, where it is necessary to evaluate m(2n+1) vectors for s-derivative and (2m+1)n vectors for t-derivative. The other method is to calculate the normal direction by using the method in section 3.4. Here, the set of control points can bound the direction.

Hodograph

T. Saito

1995

Page 13

Table 2: Number of Vectors Required for Bounding patch s-hodograph t-hodograph normal

bilinear 3 3 4

biquadratic 10 10 25

bicubic 21 21 64

m×n m(2n + 1) (2m + 1)n (3m − 1)(3n − 1)

For polynomial surfaces, [Sederberg ’88] claimed that the latter method generally gives a tighter bound, but requires much more computation. This is also true for rational surfaces. Table 2 shows the number of vectors required for the bounds. For both biquadratic and bicubic patches, the number of vectors required to bound normals is larger than total number of vectors for bounding sand t-derivative directions. Furthermore, calculation of ‘Nrm’ is more expensive than that of ‘Dir’. Thus, we recommend that normal bounds be computed from derivative bounds as in [Sederberg ’88], except for bilinear surfaces.

4

Discussion

We have tried to find tighter or simpler bounds for derivative directions and normals of rational surfaces. The following hypotheses seem plausible, but have been proven false. Hypothesis 1. For a degree m × n rational surface P[s, t], the s-derivative direction is bounded by s-derivative directions of mn bilinear surfaces, each of which are defined by four control points: Pi,j , Pi+1,j , Pi,j+1 , Pi+1,j+1 (i = 0, 1, . . . , m−1; j = 0, 1, . . . , n−1). Hypothesis 2. On a degree m×n rational surface P[s, t], the surface normal is bounded by the normals of 4mn triangles: 4Pi,j Pi+1,j Pi,j+1 , 4Pi,j Pi+1,j Pi+1,j+1 , 4Pi,j Pi+1,j+1 Pi,j+1 , 4Pi+1,j Pi+1,j+1 Pi,j+1 (i = 0, 1, . . . , m−1; j = 0, 1, . . . , n−1). Hypothesis 1 is true for any degree m × 1 surface, and Hypothesis 2 is true for any bilinear surface (see equation (54)). However, they are not true in general. Figure 2 shows a counterexample. For this degree 1 × 2 patch, the s-derivative direction and the surface normal at P[1, 0.5] are (1.00, −1.29, 0.66) and (−0.81, −0.41, 0.42), respectively. These directions defy the hypothesised bounds. If Hypothesis 1 were true, the projection of the s-derivative onto xy-plane, i.e. (1.00, −1.29, 0), should be inside of (1, 1, 0) and (1, −1, 0). If Hypothesis 2 were true, the normal direction should be bounded by (0, −1, 1), (0, 1, 1), (−1, −1, 1), and (−1, 1, 1). Acknowledgements The authors are indebted to a referee who took time to not only indentify an error in our original proof in Section 2.4, but also to suggest a correction which is simpler and more insightful. Peisheng Gao helped in finding the counterexample to the hypotheses. The second and third authors were supported by NSF under grant number DMC-8657057 and ONR under grant number N000-14-92-J-4064.

Hodograph

T. Saito

P1,2 = (1,2,0)*1 P0,2 = (0,2,0)*100 P[0,0.5]

1995

Page 14

P1,1 = (1,1,1)*100

P[1,0.5]

P0,1 = (0,1,0)*1

P1,0 = (1,0,0)*100

P0,0 = (0,0,0)*1

Figure 2: A Counterexample of the Hypotheses References Boehm, W., Farin, G., and Kahmann, J. (1984), A Survey of Curve and Surface Methods in CAGD, Computer Aided Geometric Design, 1, 1–60. Floater, M. S. (1992), Derivatives of Rational B´ezier curves, Computer Aided Geometric Design, 9, 161–174. Hohmeyer, M. (1992), Robust and Efficient Surface Intersection for Solid Modeling, PhD Thesis, University of California, Berkeley. Sederberg, T. W. and Wang, X. (1987), Rational Hodographs, Computer Aided Geometric Design, 4, 333–335. Sederberg, T. W., and Mayers, R. J. (1988), Loop Detection in Surface Patch Intersections, Computer Aided Geometric Design, 5, 161–171. Sederberg, T. W., Saito, T., Qi, D., and Klimaszewski, K. S. (1992), Rational Curves as the Intersection of Two Families of Lines, Computer Aided Geometric Design (to appear).