L11 Hermite Bicubic Surface Patch

July 14, 2017 | Author: Anonymous dGnj3bZ | Category: Linear Algebra, Equations, Applied Mathematics, Analysis, Abstract Algebra

Description

Synthetic Surfaces 1) Hermite (Bicubic Surface) Patch 2) Bezier (Surface) Patch 3) B-Spline (Surface) Patch 4) Coons (Surface) Patch 5) Blending offset (Surface) Patch 6) Triangular (Surface) Patch 7) Sculptured (Surface) Patch 8) Rational surfaces (Surface) Patch All these surfaces are based on polynomial forms. Fourier series can also be used to approximate the surfaces instead. But they are not meant for general use. Because the facts are: (i) they can approximate any curve, not just periodic (ii) computations involved are high 1

Hermite Bicubic Surface •The parametric bicubic surface patch connects four corner data points and utilizes a bicubic equation. •Therefore, 16 vectors or 16×3=48 scalars are required to determine the unknown coefficients in the equation. How? •Corner points=4, corner tangent vectors=4×2=8, corner twist vectors=4. •The parametric equation of Hermite bicubic surface patch is 3

3

P (u , v) = ∑∑ Cij u i v j ,

0 ≤ u ≤ 1, 0 ≤ v ≤ 1

i =0 j =0

2

The equation can be expanded similar to Hermite cubic curve. P (u, v) = [U ]T [C ][V ],

[

3

2

]

T

0 ≤ u ≤ 1, 0 ≤ v ≤ 1

[

3

2

[U ] = u u u 1 , [V ] = v v The coefficient matrix [C] is given by C33 C32 C C 23 22 [C ] =  C13 C12  C03 C02

]

v 1

T

C31 C30  C21 C20  C11 C10   C01 C00 

3

Applying the boundary conditions into the parametric equation and solving for the coefficients the following equation of bicubic Hermite surface patch is obtained. P(u , v) = [U ]T [ M H ][ B ][ M H ]T [V ],

0 ≤ u ≤ 1, 0 ≤ v ≤ 1

Here [ M H ] is the Hermite matrix already defined for Hermite cubic curve. [ B ] is the geometry or boundary condition matrix defined as follows.  P00 P 10 [ B] =   Pu 00   Pu10

Pv 01  P11 Pv10 Pv11   [ P ] [ Pv ]  = =  Pu 01 Puv 00 Puv 01  [ Pu ] [ Puv ]  Pu11 Puv10 Puv11  corner points corner v - tangent vectors  corner u - tangent vectors  corner twi st vectors   P01

Pv 00

4

The tangent vectors and twist vectors at any point on the surface are given by Pu (u , v) = [U ]T [ M H ]u [ B][ M H ]T [V ] T

vT

Pv (u , v) = [U ] [ M H ][ B ][ M H ] [V ] Puv (u , v) = [U ]T [ M H ]u [ B][ M H ]vT [V ] Here [ M H ]u = [ M H ]v = The differential Hermite matrix defined already for Hermite cubic curve.

5

 F1 (v)   F (v )    P(u , v) = [F1 (u ) F2 (u ) F3 (u ) F4 (u )][ B] 2   F3 (v)   F4 (v)  F1 (v)   F (v )    u u u u Pu (u , v) = F1 (u ) F2 (u ) F3 (u ) F4 (u ) [ B] 2   F3 (v)   F4 (v)

[

]

 F1v (v)   v   F (v )  Pv (u , v) = [F1 (u ) F2 (u ) F3 (u ) F4 (u )][ B] 2 v   F3 (v)   F v (v )   4   F1v (v)   v   F (v )  u u u u Puv (u , v) = F1 (u ) F2 (u ) F3 (u ) F4 (u ) [ B ] 2 v   F3 (v)   F v (v )   4 

[

Influencing factors on position and tangent vectors

]

6

The variable " s" below has been chosen to commonly represent both " u" and " v" as necessary. F1 ( s ) = 2 s 3 − 3s 2 + 1 F2 ( s ) = −2 s 3 + 3s 2 F3 ( s ) = s 3 − 2 s 2 + s F4 ( s ) = s 3 − s 2 The derivatives of the basis functions are : s

F1 ( s ) = 6 s 2 − 6 s s

F2 ( s ) = −6 s 2 + 6 s s

F3 ( s ) = 3s 2 − 4 s + 1 s

F4 ( s ) = 3s 2 − 2 s 7

On the edge with u = 0, F1 (u) = 1, rest of Fi (u) are zero. P(0, v) = [1 0 0 0][ B ][F1 (v) F2 (v) F3 (v) F4 (v)]

T

= [P00

P01

Pv 00

Pv 01 ][F1 (v) F2 (v) F3 (v) F4 (v)]

T

= F1 (v) P00 + F2 (v) P01 + F3 (v) Pv 00 + F4 (v) Pv 01 Similarly , on the edge with u = 1, F2 (u) = 1, rest of Fi (u) are zero. P(1, v) = F1 (v) P10 + F2 (v) P11 + F3 (v) Pv10 + F4 (v) Pv11 Further , Pu (0, v) = F1 (v) Pu 00 + F2 (v) Pu 01 + F3 (v) Puv 00 + F4 (v) Puv 01

Proof

Pu (1, v) = F1 (v) Pu10 + F2 (v) Pu11 + F3 (v) Puv10 + F4 (v) Puv11 Hence  P (0, v)   F1 (v)   P (1, v)   F (v )     2    = [ B]  P ( 0 , v ) F ( v )  u   3   Pu (1, v)   F4 (v)

 P00 P 10 [ B] =   Pu 00   Pu10

P01

Pv 00

P11 Pu 01

Pv10 Puv 00

Pu11

Puv10

Pv 01  Pv11   [ P] [ Pv ]  = Puv 01  [ Pu ] [ Puv ]  Puv11  8

 P00 P 10 [ B] =   Pu 00   Pu10

P01

Pv 00

P11 Pu 01

Pv10 Puv 00

Pu11

Puv10

Pv 01   F1 (v)   F (v )  Pv11    P(0, v) = [F1 (0) F2 (0) F3 (0) F4 (0)][ B] 2  Puv 01   F3 (v)   F4 (v)  Puv11 

 F1 (v)   F (v )    P(1, v ) = [F1 (1) F2 (1) F3 (1) F4 (1)][ B] 2   F3 (v)   F4 (v)  F1 (v)     F2 (v) u u u u Pu (0, v) = F1 (0) F2 (0) F3 (0) F4 (0) [ B]  ( ) F v 3    F4 (v)  F1 (v)   F (v )    u u u u Pu (1, v) = F1 (1) F2 (1) F3 (1) F4 (1) [ B] 2   F3 (v)   F4 (v)

[

[

]

]

9

On the edge with v = 0, F1 (v) = 1, rest of Fi (u) are zero. P (u ,0) = [F1 (u ) F2 (u ) F3 (u ) F4 (u )][ B ][1 0 0 0]

T

= [F1 (u ) F2 (u ) F3 (u ) F4 (u )][P00

P10

Pu 00

Pu10 ]

T

= F1 (u ) P00 + F2 (u ) P10 + F3 (u ) Pu 00 + F4 (u ) Pu10 Similarly, on the edge with v = 1, F2 (v) = 1, rest of Fi (u) are zero. P (u ,1) = F1 (u ) P01 + F2 (u ) P11 + F3 (u ) Pu 01 + F4 (u ) Pu11 Further , Pv (u,0) = F1 (u ) Pv 00 + F2 (u ) Pv10 + F3 (u ) Puv 00 + F4 (u ) Puv10 Pv (u,1) = F1 (u ) Pv 01 + F2 (u ) Pv11 + F3 (u ) Puv 01 + F4 (u ) Puv11 Hence T

T

 P(u,0)   F1 (u )   P (u,1)   F (u )    2  =     [ B]  Pv (u ,0)  F3 (u )   Pv (u,1)   F4 (u ) 10

Continuity of Blent Hermite Bicubic Patches

• Similar to the Hermite cubic splines, the Bicubic Hermite patches give maximum C1 continuity from one patch to the next, though they give C2 continuity inside each of the patches. • While blending two Bicubic Hermite patches, the necessary conditions are: – Same curves (C0 continuity) at the common edge – Same direction of tangent vectors (C1 continuity) at the common edge – The magnitudes of the tangent vectors do not have to be the same

11

Blending Two Hermite Patches along u edges

• [P(0,v)]patch2=[P(1,v)]patch1, C0 continuity • [Pu(0,v)]patch2=K[Pu(1,v)]patch 1, C1 continuity The B matrix for the adjacent patches are shown. Only these elements need to be constrained, rest could be arbitrary for C1 continuity

12

HERMITE BICUBIC PATCH IS A “SIMPLE EXTENSION” OF THE HERMITE CUBIC CURVE

• There are two ways to prove it. 1) Substitute u=1 or v=1 in the parametric equation of the Hermite patch, it degenerates to that of HCC. 3

3

P (u , v) = ∑∑ Cij u i v j ,

0 ≤ u ≤ 1, 0 ≤ v ≤ 1

i =0 j =0

P (u , v) = C00u 0 v 0 + C10u1v 0 + C20u 2 v 0 + C30u 3v 0 + C01u 0 v1 + C11u1v1 + C21u 2 v1 + C31u 3v1 + C02u 0 v 2 + C12u1v 2 + C22u 2 v 2 + C32u 3v 2 + C03u 0 v 3 + C13u1v 3 + C23u 2 v 3 + C33u 3v 3 For each of v = 0 and v = 1 cases, it reduces to HCC. P (u , v) = C0 + C1u + C2u 2 + C3u 3 13

• The second way to prove is: 2) Let u edges coincide. P00 coincides with P10, and P01 coincides with P11. Pv00=Pv10 and Pv01=Pv11. All four twist vectors will be zero. Pu00=Pu10= Pu01=Pu11=0. For u = 0,  P00 P P(0, v) = [1 0 0 0] 00 0  0

P01 P01

Pv 00 Pv 00

0 0

0 0

Pv 01   F1 (v)  Pv 01   F2 (v)   0   F3 (v)   0   F4 (v)

P(0, v) = P(v) = F1 (v) P00 + F2 (v) P01 + F3 (v) Pv 00 + F4 (v) Pv 01 For u = 1,  P00 P P(1, v) = [0 1 0 0] 00 0  0

P01 P01

Pv 00 Pv 00

0 0

0 0

Pv 01   F1 (v)  Pv 01   F2 (v)   0   F3 (v)   0   F4 (v)

P(1, v) = P(v) = F1 (v) P00 + F2 (v) P01 + F3 (v) Pv 00 + F4 (v) Pv 01 14

3

3

P(u , v) = ∑∑ Cij u i v j = P0 + uLu rˆ + vLv sˆ i =0 j =0

By equivalence, find the bicubic planar surface patch.

C00u 0 v 0 + C10u1v 0 + C20u 2 v 0 + C30u 3v 0 + C01u 0 v1 + C11u1v1 + C21u 2 v1 + C31u 3v1 + C02u 0 v 2 + C12u1v 2 + C22u 2 v 2 + C32u 3v 2 + C03u 0 v 3 + C13u1v 3 + C23u 2v 3 + C33u 3v 3 = P0 + uLu rˆ + vLv sˆ Hence C00 = P0 ; C10 = Lu rˆ; C01 = Lv sˆ rest all Cij are equal to zero. The resultant [B] matrix, when you build the P(u , v) = [U ]T [ M H ][ B][ M H ]T [V ] is going to be  P0 P0 + Lv sˆ Lv sˆ Lv sˆ   ˆ ˆ ˆ ˆ ˆ + + + P L r P L r L s L s L s 0 u u v v v  [B] =  0  Lu rˆ 0 0  Lu rˆ   ˆ ˆ 0 0 L r L r u  u 

Can you prove it? 15