Поверхностные модели в системах компьютерной графики

  • Published on
    28-Jul-2015

  • View
    975

  • Download
    2

Transcript

1

..

2007

2

681.3

.. . . : , 2007. 60 . . , . . .

3

. 1 .. 1.1 1.2 .... ......

4 6 6 8 12 12 13 15 18 20 25 29 29 32 38 53 54 54 56 58

2 .. 2.1 2.2 2.3 2.4 2.5 2.6 ..... .. .... ...... .... ......

3 ........ 3.1 3.2 3.3 ........ ...... ......

.. ....... . .... . B- .... . - ...

4

, , : Photoshop, Corel Draw, . . ( .., ..), , , , . , , , , . , , , , . , , , , , , . . , . . , , , . , , : ( ), . , . (3D2D) .

5

, , (), . , . . , , . , . [1,,5]. , : jkos@ diamond.stup.ac.ru

6

1

1.1

, ,

(), , , () ( ). . , , ( ) . , . . - . -. . , . , . , . : , , , . , . , , , , .

7

: , , . , . : , , . , , . , , , . , (), . . (), . , . . , . : , . . -, " " , -, , . . (, ,

8

), . , . , , .

1.2

.

. [2]: , . , . , , .

. , , , . , , . , , , , (" "). , "" , . ,

9

, ( ). , , . , , . . 1.1. -, , . , , . , , . , , .

, . , , . , . . . , , , (). . , , .

10

1.1

11

. , , . () . , , . . . , . , . , , . , , , . , , . , , , , . , -. , . , - . , . . (). , , . - .

12

. "" , , , , R- [2]. . . , - . , , . , , [1,2,4]. - .

2

2.1 , : . , , . , 1.2. . , . . , . ( ) , .

13

( ), () . , . , . , . . , . , . ( ) , . . . , . 2.2 . , , . , , . ( ) .

14

. , , . ( ) . , , . , . , , , , -, , . [6,7]. . , ( ). . ( ), . , : , , , [2,7]. . , , . , .. ( ), ( ).

15

. - , , . ( ). , . [7]. , . . , . , - . .

2.3 , . . , .

R = R M , R - :

(2.1)

R= x

y z 1;

R - (h ):

16

R = x h

y h z h h ;

M 44. , ( , ). , . , . (DL), (TR), (RT) (PR) :Mx DL = 0 0 0 t11 RT = t12 t13 0 0 My 0 0 t 21 t 22 t 23 0 t 31 t 32 t 33 0 0 0 Mz 0 0 0 0 1 , PR = 0 0 , 0 1 TR = 1 0 0 x0

0 1 0 y0

0 0 1 z0

0 0 0 1 0 0 1 , zv 1 ,

1 0 0 0 1 0 0 0 0 0 0 0

(2.2)

M x , M y , M z ; x0 , y0 , z0

,

;

t11 ,..., t33 ; zv .

: x ( ), y () z (). . : . .

17

, -. x y, y z, z x , . . , ( zv) , , . :1 RTX = 0 0 sin cos 0 0 0 , 0 1 0 cos 0 sin 0 0 cos 0 RTY = sin 0 0 sin 1 0 0 cos 0 0 0 0 , 0 1 cos sin RTZ = 0 0 sin cos 0 0 0 0 1 0 0 0 . 0 1

:1 0 0 cos RTX = 0 sin 0 0 0 sin cos 0 0 0 , 0 1 cos 0 RTY = sin 0 0 sin 1 0 0 cos 0 0 0 0 , 0 1 cos sin RTZ = 0 0 sin cos 0 0 0 0 1 0 0 0 . 0 1

M, , () . . , (xp,yp,zp) : 1) , (xa,ya), 2) . RTZ z, , RTZ . (xa ),(ya), . .

TR1. , , (+xa),(+ya) TR2.

18

,

PR. (2.1), :1 TR1 = 0 0 xa 0 1 0 ya 0 0 1 0 0

M=TR1RTTR2PR. 1 0 1 0 ya 0 0 1 0 cos 0 sin , RTZ = 0 0 1 0 0 sin cos 0 0 0 0 1 0 0 0 . 0 1

:0 0 , TR 2 = 0 0 1 xa

2.4

, , . , ( ) . , . L , , N , . , . , L N :

cos =

LN . LN

sgn( L N ) > 0 , .

L N :L N = l x nx + l y n y + l z nz ,

lx, ly, lz nx, ny, nz L N , .

19

, . , . lx=ly=0, lz= L . F(x,y,z), . , :F(x,y,z)=Ax+By+Cz+D,

A,B,C,D , . nz nz = F =C z

vp : vp=sgn . , . [6,7]. . , . z- ( ) , () . , ( ). , , . , , . , ,

20

, , . z-

. .2.5

, , . . (, ) , ,

, . ( ), . , "" . . , (, , .). . -. . , . 22, . , .

21

, . . , , . , . . , . ( ) . , . . . , . , , . u,v.t vb

2.1

, s,t, ,

1

1

b

0 a 0

c

0.5

1

s

0 a 0

c

1

u

2.1 : () () ()

22

, . , , 2.1, s = Au + Bv + C , t = Du + Ev + F ,

(2.3) (2.4)

A,,F .

. 2.1 , a,b c: a (2.3) 0=A0+B0+C, (2.4) 0=D0+E0+F, b (2.3) 0.5=A0+B1+C, (2.4) 1=D0+E1+F, c (2.3) 1=A1+B0+C, (2.4) 0=D1+E0+F. : A=E=1, B=0.5, C=D=F=0. s=u+0.5v, t=v,

. . . , -. , , , . -, . , ,

23

.

, . . , . , . . , . , , . , . () . , 4 ( ) . . , . , . mip-mapping [7]. . . , . , , , ,

24

. , [7]. I I, I , d , , , :I = I k + I k cos + k cos n , d+K

(

)

k ,k ;k

;

K ; - ; -

;n ,

( ). . , . . , . . , . , , . ()

25

, . , . , . , . .

2.6

, . : . 2.2, v, o, p , . . : ; . , ( V) ( ); ( P1,P2), , , ; . , , ( );

26

t

2

x

x

1

y V

v

s zv

z z

xv

y y

2.2

27

. "". , . , -, ("") , -, . : , . ( ); , V; , ; ; , . , , . , . , 2.2 (). () .

28

( ) , . . . "" , . . : , . (-) . 2.3. .

2.3 - . () . . () , . . , , , . (), z-

29

. (), (). - , . , - . , , .

3

3.1

() , , . . , . V:V={v1,v2,,vL},

vi=(xi,yi,zi),

L ; M ; N ,

E:E={e1,e2,,eM}, ej=(pvj1,pvj2,fj1,fj2),

P:P={p1,p2,,pN}, pk=(pek1,pek2,,pekR), R k- .

vi, V, . ej . . , -,

30

pvj1,pvj2 , j- , -, fj1,fj2

. , . pk . 3.1 , P1, P2, .

v2P 1 e1

V={(x1,y1,z1), (x2,y2,z2), (x3,y3,z3), (x4,y4,z4)}; v3P2

e3

E={(pv1,pv2,1,0), (pv1,pv3,1,0), (pv2,pv3,1,0),

(pv2,pv4,0,0), (pv3,pv4,0,0),};P={(pe1,pe2,pe3),( pe3,pe4,pe5)}.

v1

e2

e4

e5 v4

3.1 , 3.1, P2 . P2. , , , . . N , , nx, ny,nz ( ), N

. N = nxi + nyj + nzk ,

31

i,j,k , x,y z, (). , V1R1R2

N

, . R1, R 2 ,

V2

V3

, 3.2. N

3.2

N = R1 R 2 = R1 R 2 sin ,

3- [1]i N = r1x r2 x j r1 y r2 y k r1z , r2 z

r1x,,r2z R1, R 2 . nx, ny, nz i, j, k, , 2- , i-, j-, k- . nx = ny = nz = r1 y r2 y r1x r2 x r1x r2 x r1z r2 z = ( y2 y1 )( z3 z1 ) ( y3 y1 )( z2 z1 ),

r1z = ( x2 x1 )(z3 z1 ) ( x3 x1 )( z2 z1 ), r2 z r1 y = ( x2 x1 )( y3 y1 ) (x3 x1 )( y2 y1 ), r2 y

xn, yn, zn n- (n=1,2,3). .

32

. , , , . , . (strip). , . DirectX OpenGL [8] .3.2

, , . , , . , . , , . - (): ( ), , , , . , . , , :

33 x2 + y 2 + z 2 = R2 ,

R . () . : :F ( x, y , z ) = x 2 + y 2 + z 2 R 2 = 0 ,

z ( x, y ) = R 2 x 2 y 2 .

, , , F(x,y,z) . , x,y , z ( ). , . , , [5]. . . , - . . , , , , z

, , , z z P z

z P

y x

y x

34

= R , = 0 .. 2 , = 0 .. .

, z = R 2 z 2 , = 0 .. 2 , z = R .. + R .

x = sin cos , y = sin sin , z = cos .x = cos , y = sin , z = z.

,

,

. . . . - .

. - . , , , [3]. , , . . , ( i+1) ,

i () :

35

sin i +1 = sin ( i + ) = sin i cos + cos i sin ,

cos i +1 = cos( i + ) = cos i cos sin i sin .

sin , cos

,

sin i, cos i . : sin 0=0, cos 0=1. , . , . , i- , , , -

y u nxi = i y v i

z z u i , n = u i yi z z v i v i

x x u i , n = u i zi x x v i v i

y u i . y v i

(3.1)

u v , , . u v , nx, ny, nz

,

. , , , . :nxi = F ( x, y, z ) F ( x, y, z ) F ( x, y, z ) , n yi = , nzi = . x y z

, , , : nx=x, ny=y, nz=z.

36

( , ). , . "" . ,

. z . z

. z , . 3.3 , , z. ,A, zA,

.

z A

. 3.3 x

A

A( x A , y A , z A )zA

y

x = f x cos , y = f y sin , z =z, z = zmax , .. , zmax ,

(3.2) = 0, .. ,2 ,

fx , fy ( z) , . (3.2) . , ,

37

,

. fx , fy 3.1, , , N (nx,ny,nz). 3.1 fx fy nx ny nz a 1 ( z c) 2b 1 ( z c) 2 x a2 y b2 z c2

a z

(a c) z

a 1 + ( z c) 2

a bx a2 y b2

b z x a2 y b21 2

(b c) z x a2 y b2 z c2

b 1 + ( z c) 2 x a2 y b2 z c2

0

3.1 : a b , z

z=0, z=1, z=c , ; c , , . - , . , , , .

38

.3.3

, , , . () , . , 3D- . .

. , . () . , . , . , . - . (spline) . . ( ) , , . , . , ,

39

, , . , , , . - . 1 2, 3.4, S , . , S . , S : 1S

2

1)

2)

1 2, ; 3) 4) S 1 2 (), . S , . , , , 3.4 -

y = ax 3 + bx 2 + cx + d , a,b,c d. :

40

1) 1 2) 2

y1 = ax13 + bx12 + cx1 + d ,3 2 y 2 = ax2 + bx2 + cx2 + d ,

3) 1

& y1 = 3ax12 + 2bx1 + c ,4) 2 2 & y2 = 3ax2 + 2bx2 + c .

, , , . . () . , . , 0 3. , [3]. , .

. . -, . -, , . . . , -, , , , . ,

x(u, v) = C X 00 + C X 01u + C X 02u 2 + C X 03u 3 v 0 +X 10 X 20

( +(C +(C +(C

+ C X 11u + C X 12u 2 + C X 13

+ C X 21u + C X 22u 2 + C X 23

2 X 30 + C X 31u + C X 32 u + C X 33

) u )v + u )v + u )v = C3 1 3 2 3 3 3 3 i =0 j =0

41

(3.3)X i ju j i

v,

u = 0, .. ,1 ,

v = 0, .. ,1 ,

u , v ( -);

C X 00 ,..., C X 33

.

,

y(u,v)

z(u,v),

CY 00 ,..., CY 33 CZ 00 ,..., CZ 33 , . (3.3) . u,v , . . (3.3) , . 3.5. 1

v

vCP y0

CP

uCP z

1 yCP

zCP xCP

u

x

3.5

42

. . , ( , ) , ( ) ( ) [1,3]. , . ( ), . , . (3.3), , . x(u, v) = f i (v) f j (u ) PX i j ,i =0 j =0 3 3 3 3

y (u , v) = f i (v) f j (u ) PY i j ,i =0 j =0 3 3

(3.4)

z (u , v) = f i (v) f j (u ) PZ i j , u = 0..1, v = 0..1,i =0 j =0

PX , PY , PZ x, y z- ; f i (u ) , f j (v) , -. f i (u ) , f j (v) , . , :

43

x ( u, v ) = U M PX M T V T , y ( u, v ) = U M PY M T V T , z ( u, v ) = U M PZ M V ,T T

(3.5)

U, V u v:U = u3 u2 u 1 , V = v3 v2 v 1 ;

PX , PY , PZ , x, y z

, , , 3.6,x00 PX = x10 x20 x30 x01 x11 x21 x31 x02 x12 x22 x32 x03 x13 x23 x33 ;

M , ,

. . , . , . , , (, ) . , . , , , . , ( (3.5)) . . u, v.

44

3.6 , 16 P00,,P33.vz

P01 P10 y

P02

P03 P13 P23 P20 P33

P00

u0 P30 x

3.6 . u, v (Puv) ( ). , v=const, , v=0,

v=v, v=2v , v v. , . (3.4) i f i ( u) = Cm u i (1 u) mi ,

f j ( v ) = Cnj v j (1 v ) n j ,

i Cm , Cnj ,

(3.5) : 3 3 6 M= 3 3 1 01 3

3 0 0

1 0 . 0 0

45

, , , 00. . (3.5) u=v=0, : 3 1 x00 3 6 3 0 x10 x(u , v) = 0 0 0 1 3 3 0 0 x20 1 0 0 0 x30 3 x00 x = 1 0 0 0 10 x20 x30 x01 x11 x21 x31 x02 x12 x22 x32 1 x01 x11 x21 x31 x02 x12 x22 x32 1 0 0 0 x03 1 3 3 x13 3 6 3 x23 3 3 0 x33 1 0 0 1 0 0 0 0 0 = 0 1 1 0 0 0 0 0 = 0 1

x03 1 3 3 x13 3 6 3 x23 3 3 0 x33 1 0 0

0 0 = x00 0 1

x01

x02

3 3 3 6 3 x03 3 3 0 1 0 0

1

= ( x00 + 3 x01 3 x02 + x03 )

(3x00 6 x01 + 3x02 ) ( 3x00 + 3x01 )

0 0 (x00 ) = x00 . 0 1

. : . , . , : . : u, v . , 3.7. S1,,S4. , 3.6 ( ).

46

, .

S4 S1 S2 S3

P1-33 P2-03 P3-00 P4-30

3.7 , . -,

. , , . , . , . () . , , . 3DStudioMAX. , u,v (0,1)

47

. , MathCAD. , , - (-). (3.5). - , , , , . -

(3.4) [3]1 1 f 0 ( u) = (1 u) 3 , f 1 ( u) = ( 3u 3 6u 2 + 4) , 6 6 1 1 f 2 ( u) = ( 3u 3 + 3u 2 + 3u + 1) , f 3 ( u) = u 3 , 6 6 (3.6)

( fj(v) , u v), M 1 M= 1 3 6 3 1 3 6 0 4 3 3 3 1 1 0 0 0 .

(3.5) , , , - . , u=v=0 :x(u , v) =

1 (x00 + 4 x10 + x20 + 4 x01 + 16 x11 + 4 x21 + x02 + 4 x12 + x22 ). 36

(3.7)

, , , . 11, , u v.

48

.

B- 16 ,

44 , - . , 11, 12, 21, 22. , u v , 11. MathCAD- - , . , u,v (0,1) - , . , - , . - , . : 1) . u,v. - ; 2) 16 ( 4 ). (3.5) ; 3) u v. 12 4 . (3.5) ;

49

4)

3) ,

. . . - , () . , , . . , , . . . , , . , , , mn , (2m+2n+4) . 3.8 ( -). 16 - (00, 30, 03, 33 ). ,

. () , . , , , , . . , . . .

50

P03

P00 P30

P33

3.8 , , , , , . . , , , , . , , , 00. (3.7). 00=10=01=11, 00 , 25 36 , , 136 . , , - , . , . .

51

, 3.8. , (2m+2n+12). , 3.8, ( ). . , . , , , , . . , MathCAD . , . , . , , . , . , (3.1), . , , , . . B- (Non-Uniform Rational B-

Splines NURBS). ( ),

52

. x ( u, v ) =3 3

wi j f i (u) f j (v ) PX i ji =0 j =0 3 3

wi j f i (u) f j (v )i =0 j =0

,

(3.8)

.

wi j ,

y(u, v)

z(u, v) (

PY

PZ ).

f i (u) , f j (v)

, -. B- . , (3.8), ( PX , PY ,PZ ) . . :x(u , v) = U M WX M T V T , U M W M T V T

WX

(w00 x00 ) (w x ) = 10 10 (w20 x20 ) (w30 x30 )

(w01 x01 ) (w11 x11 ) (w21 x21 ) (w31 x31 )

(w02 x02 ) (w12 x12 ) (w22 x22 ) (w32 x32 )

(w03 x03 ) (w13 x13 ) , (w23 x23 ) (w33 x33 )

W=

w00 w10 w20 w30

w01 w11 w21 w31

w02 w12 w22 w32

w03 w13 w23 w33

,

WX ; W . , . NURBS .

53

1. ., . . : . . .: , 1982. 304 . 2. .., .. / . .. . .: , 1995. 224 . 3. ., . : . . .: , 2001. 604 . 4. .. . .: -, 2003. 560 . 5. .. . .: - , 2002. 472 . 6. . : . . .: , 1989. 512 . 7. . . OpenGL, 2 .: . . .: , 2001. 592 . 8. .., .. / . .. .: , 2005. 520 .

54

.

() . 3.6. , 1. 1 00 10 20 30 01 11 21 31 02 12 22 32 03 13 23 33 xuv yuv zuv 0 0 0 1 0 1 2 0 -1 3 0 0.5 0 1 2 1 1 1.5 2 1 0 3 1 0.5 0 2 2 1 2 2 2 3 2 0 3 1 3 2 2 3 3 3

1.8 1.5 1.8 1.5

1.5 1.5

xx, yy, zz. (3.5)xx = U M X M T V T , yy = U M Y M T V T , zz = U M Z M T V T .

0 0 0 0

0 1 2 3

0

2

2

1.5 2

X

1 1 1 1 2 2 2 2 3 3 3 3

Y

0 1 2 3 0 1 2 3 0 1 2 3

Z

1 1

1.5 1.8 0

1.5 1.5

0.5 0.5 1.8 1.5

55

1 3 6 3 0 3 1 3 0 0 0 0 0 3 3 1

M

xx,yy,zz. nu,nv, (0,10). u,v . 10

, 0.1.

T MT M .

:nu0 .. 10

nv

0 .. 10

unu0.1 . nu

vnv

0.1 . nv

- U V, . u v . , u v .Unu , 0 Vnv , 0 unu vnv3 3

.

. 22

Unu , 1 Vnv , 1

unu vnv

Unu , 2 Vnv , 2

unu vnv

Unu , 3 Vnv , 3

1 1

56

v.VT T V

xx U . M . X . MT . VT yy U . M . Y . MT . VT zz U . M . Z . MT . VT

(Surface Plot)

3 2 1 1.5 1 0.5 0 0 1 0 2 3

xx , yy , zz

. B-

() -. 3.6, :

57 0 0 0 0 0 1 2 3 0 2 2 1.5 2

X

1 1 1 1 2 2 2 2 3 3 3 3

Y

0 1 2 3 0 1 2 3 0 1 2 3

Z

1 1

1.5 1.8 0

1.5 1.5

0.5 0.5 1.8 1.5

-1 3 3 1 3 0 M 4 6 3 1 3 0 1 0 6 3 0

(3.5). , .

MT T M

. :nu0 .. 10

nv

0 .. 10

unu0.1 . nu

vnv

0.1 . nv

, -.Unu , 0 Vnv , 0 unu vnv3 3

Unu , 1 Vnv , 1

unu vnv

2 2

Unu , 2 Vnv , 2

unu vnv

Unu , 3 Vnv , 3

1 1

58

v.VT T V

xx U . M . X . MT . VT yy U . M . Y . MT . VT zz U . M . Z . MT . VT

(Surface Plot)

1.5

1.8 1.6 1.4 1.2

1 2 0.5 1 1.5 1

xx, yy , zz

. - -, MathCAD- . , .

59

1.5

3 2 1.5 1 3 2 1 0 12

1.8 1.6 1.4 1.2

1

0.5 0 0

0.5 1

1.5 1

xx , yy , zz

xx, yy , zz

1 ( )

1.5 1 0.8 0.6 0.4 0.5 0.2 0.2 0.4 1 0.6 0.8 1

3 2 1 1.5 1 0.5 0 0 1 0 2 3

xx, yy , zz

xx , yy , zz

2 ( )

60

1 0.8

30.6 0.4 0.6 0.4 0.2 0.2 0.05 0.1 0.15

2 1

1.5 1 3 2 1 0

0

0.5 0 0

xx, yy , zz

xx , yy , zz

3 ( )

1 0.8

0.6 0.5 0.4 0.4 0.3 0.2 0.2

3 2 1 1.5 1 0.5 0 0 1 0 2 3

xx, yy , zz

xx , yy , zz

4 ( ).

Recommended

View more >