Bài giảng Thiết kế đường và mặt cong bezier và B-Spline

Tài liệu Bài giảng Thiết kế đường và mặt cong bezier và B-Spline: CHNG VI THIT K NG VÀ MT CONG BEZIER VÀ B-SPLINE Khác vi nhng phng pháp biu din mt và  ng b i các công th c toán h c t ng minh, ây ta s bàn n các công c cho phép ch ra các dng  ng và mt khác nhau da trên các d liu. iu này có ngha là vi mt  ng cong cho trc mà ta cha xác nh c công th c toán h c ca nó thì làm th nào  có th nm bt c dng ca  ng cong ó mt cách tng i chính xác qua vic s dng mt tp nh các im P0 , P1 ,... cùng vi mt phng pháp ni suy nào ó t tp im này  to ra  ng cong mong mun vi mt  chính xác cho phép. Có nhiu cách  nm bt c  ng cong cho trc, ch!ng hn: • L"y mt m#u  ng cong ch ng vài chc im cách nhau tng i ngn r$i tìm mt hàm toán h c và chnh hàm này sao cho nó i qua các im này và khp vi  ng cong ban %u. Khi ó, ta có c công th c ca  ng và dùng nó  v li  ng cong. • Cách khác là dùng mt tp các im kim soát và d...

pdf14 trang | Chia sẻ: hunglv | Lượt xem: 1290 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng Thiết kế đường và mặt cong bezier và B-Spline, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
CHNG VI THIT K NG VÀ MT CONG BEZIER VÀ B-SPLINE Khác vi nhng phng pháp biu din mt và  ng b i các công th c toán h c t ng minh, ây ta s bàn n các công c cho phép ch ra các dng  ng và mt khác nhau da trên các d liu. iu này có ngha là vi mt  ng cong cho trc mà ta cha xác nh c công th c toán h c ca nó thì làm th nào  có th nm bt c dng ca  ng cong ó mt cách tng i chính xác qua vic s dng mt tp nh các im P0 , P1 ,... cùng vi mt phng pháp ni suy nào ó t tp im này  to ra  ng cong mong mun vi mt  chính xác cho phép. Có nhiu cách  nm bt c  ng cong cho trc, ch!ng hn: • L"y mt m#u  ng cong ch ng vài chc im cách nhau tng i ngn r$i tìm mt hàm toán h c và chnh hàm này sao cho nó i qua các im này và khp vi  ng cong ban %u. Khi ó, ta có c công th c ca  ng và dùng nó  v li  ng cong. • Cách khác là dùng mt tp các im kim soát và dùng mt thut toán  xây dng nên mt  ng cong ca riêng nó da trên các im này. Có th  ng cong ban %u và  ng cong to ra không khp nhau lm, khi ó ta có th di chuyn mt vài im kim soát và lúc này thut toán li phát sinh mt  ng cong mi da trên tp im kim soát mi. Tin trình này lp li cho n khi  ng cong to ra khp vi  ng cong ban %u. & ây, ta s tip cn v"n  theo phng pháp th hai, dùng n các  ng cong Bezier và B-Spline  to các  ng và mt. Gi' s mt im trong không gian c biu din di dng vector tham s p(t). Vi các  ng cong 2D, p(t) = (x(t), y(t)) và các  ng 3D, p(t) = (x(t), y(t), z(t)). 6.1. NG CONG BEZIER VÀ MT BEZIER 6.1.1. Thut toán Casteljau Chng VI. Thit k ng cong và m t cong Bezier và B-Spline 70  xây dng  ng cong p(t), ta da trên mt dãy các im cho trc r$i to ra giá tr p(t) ng vi m(i giá tr t nào ó. Vic thay )i các im này s làm thay )i dng ca  ng cong. Phng pháp này to ra  ng cong da trên mt dãy các bc ni suy tuyn tính hay ni suy khong gia (In-Betweening). Ví d: Vi 3 im P0 , P1 , P2 ta có th xây dng mt Parabol ni suy t 3 im này b*ng cách ch n mt giá tr t ∈ [0, 1] nào ó r$i chia on P0P1 theo t l t, ta c im P0 1 trên P0P1 . Tng t, ta chia tip P1P2 c+ng theo t l t, ta c P1 1 . Ni P0 1 và P1 1 , li l"y im trên P0 1P1 1 chia theo t l t, ta c P0 2. Vi cách làm này, ta s l"y nhng giá tr t khác ∈ [0, 1] thì s c tp im P0 2. ó chính là  ng cong p(t). Ta biu din b*ng phng trình: P0 1(t) = (1-t).P0 + t.P1 (1) P1 1(t) = (1-t).P1 + t.P2 (2) P0 2(t) = (1-t).P0 1 + t.P1 1 (3) Thay (1), (2) vào (3) ta c: P(t) = P0 2(t) = (1-t)2.P0 + 2t.(1-t).P1 + t 2.P2 ây là mt  ng cong bc 2 theo t nên nó là mt Parabol. T)ng quát hóa ta có thut toán Casteljau cho (L+1) im: Gi' s ta có tp im: P0, P1, P2, ..., PL Vi m(i giá tr t cho trc, ta to ra im Pi r(t) th h th r, t th h th (r - 1) trc ó, ta có: Pi r(t) = (1-t).Pi r-1(t) + t.Pi+1 r-1(t) (3’) r = 0,1,...,L và i = 0,...,L-r Th h cui cùng P0 L (t) c g i là ng cong Bezier ca các im P0,P1 ,P2,...,PL Các im Pi , i=0,1,...,L c g i là các i m ki m soát hay các im Bezier. a giác to b i các im kim soát này g i là a giác ki m soát hay a giác Bezier. 6.1.2. Dng Bernstein ca các ng cong Bezier  ng cong Bezier da trên (L+1) im kim soát P0 ,P1 , ...,PL c cho b i công th c: P(t) = k L =  0 Pk.Bk L(t) Chng VI. Thit k ng cong và m t cong Bezier và B-Spline 71 Trong ó, P(t) là mt im trong mt ph!ng hoc trong không gian. Bk L(t) c g i là a th c Bernstein, c cho b i công th c: Bk L(t) = L k L k ! !( )!− (1-t)L-k.tk vi L ≥ k M(i a th c Bernstein có bc là L. Thông th ng ta còn g i các Bk L(t) là các hàm trn (blending function). Tng t, i vi mt Bezier ta có phng trình sau: P(u,v) = i M =  0 i L =  0 Pi,k.Bi M(u).Bk L(v) Trong tr ng hp này, khi a din kim soát s có (M+1).(L+1) nh. ng cong Bezier bc 2 ng cong Bezier bc 3 Hình 6.1 6.1.3. Dng bi u din ma trn ca ng Bezier  thích hp cho vic x lý trên máy tính, ta biu din hai m'ng BL(t) và P nh sau: BL(t) = (B0 L(t), B1 L(t), ..., BL L(t)) P = (P0 ,P1 , ...,PL ) Do ó: P(t) = BL(t).P (tích vô hng) hay P(t) = BL(t).PT (PT là dng chuyn v ca P) Di dng a th c, có th biu din Bk L(t) nh sau: Bk L(t) = a0 + a1.t + a2.t 2 + ... + aL.t L = (t0,t1,...,tL).(a0 ,a1 ,...,aL) Do ó P(t) có th biu din li nh sau: P(t) = PowL(t).BezL.PT Vi: • PowL(t) = (t0,t1,...,tL) P 1 1 P 1 P 0 1 P 1 P 0 2 P 2 Chng VI. Thit k ng cong và m t cong Bezier và B-Spline 72 • BezL là ma trn biu din m'ng BL(t) trong ó m(i hàng i ca ma trn ng vi các h s tng ng (a0 ,a1 ,...,aL) ca a th c Bi L(t) và ti v trí (i,j) trong ma trn BezL có giá tr BezL(i,j) = (-1)j-i.Cn i.Ci j Ví d: Ma trn Bez3 cho các  ng Bezier bc 3 Bez3 = 1 0 0 0 3 3 0 0 3 6 3 0 1 3 3 1 − − − −             6.1.4. To và v các ng Bezier  to ra mt  ng cong Bezier t mt dãy các im kim soát ta s áp dng phng pháp l"y m#u hàm p(t) các giá tr cách u nhau ca tham s t, ví d có th l"y ti = i/N, i=0,1,...,N. Khi ó ta s c các im P(ti) t công th c Bezier. Ni các im này b*ng các on th!ng ta s c  ng cong Bezier g%n úng.  tính P(ti) ta có th áp dng ma trn ca P(t) trên trong ó ch có thành ph%n Pow L(ti) là thay )i, còn tích BezL.PT vi P = (P0 ,P1 , ...,PL ) là không thay )i. Sau ây là th tc minh h a vic v  ng cong Bezier trong mt ph!ng: Type Mang = array[0..50] of PointType; function tich(x,y:word):real; var s:real;i:word; begin if y<=1 then tich:=1 else begin s:=1; for i:=x to y do s:=s*i; tich:=s; end; end; function CLK(l,k:word):real; begin CLk:=tich(k+1,l)/tich(1,l-k); end; function Xmu(x:real;mu:word):real; Chng VI. Thit k ng cong và m t cong Bezier và B-Spline 73 var i:word;s:real; begin if mu=0 then s:=1 else begin s:=1; for i:=1 to mu do s:=s*x; end; Xmu:=s; end; function BKL(t:real;l,k:word):real; begin BKL:=CLK(l,k)*xmu(1-t,l-k)*xmu(t,k); end; procedure Pt(t:real;L:word;A:Mang;var diem:PointType); var k:word;s,x,y:real; begin x:=0; y:=0; for k:=0 to L do begin s:=BKL(t,l,k); x:=x+A[k].x*s; y:=y+A[k].y*s; end; diem.x:=round(x); diem.y:=round(y); end; procedure Vebezier(A:Mang;L:integer); var i,SoDiem:word; Diem:PointType; dx,x:real; begin sodiem:=100; dx:=1/sodiem; Chng VI. Thit k ng cong và m t cong Bezier và B-Spline 74 x:=0; if L>0 then begin for i:=1 to sodiem+1 do begin Pt(x,L,A,Diem); if i=1 then moveto(round(diem.x),round(diem.y)) else lineto(round(diem.x),round(diem.y)); x:=x+dx; end; end end; 6.1.5. Các tính cht ca ng cong Bezier i/ Ni suy c các im %u và cui. Chng minh: Ta có: P(t) = k L =  0 Pk.Bk L(t) Do ó P(0) = k L =  0 Pk.Bk L(0) trong ó: Bk L(0) = L k L k ! !( )!− (1-0)L-k.0k ∀k ≠ 0 và k ≠ L = L k L k ! !( )!− .0 = 0 Vì vy, P(0) = P0.B0 L(0) + PL.BL L(0) = P0 + 0 = P0 Lý lun tng t cho P(1). Ta có P(1) = PL. ii/ Tính b"t bin Affine: Khi bin )i mt  ng cong Bezier, ta không c%n bin )i m i im trên  ng cong mt cách riêng r, mà ch c%n bin )i các im kim soát ca  ng cong ó r$i s dng công th c Bernstein  tái to li  ng cong Bezier ã c bin )i. Chng minh: Gi' s im P(t) bin )i Affine thành P’(t) Chng VI. Thit k ng cong và m t cong Bezier và B-Spline 75 P’(t) = P(t).N + tr = k L =  0 Pk.Bk L(t).N + tr Trong ó: N: ma trn bin )i. tr: vector tnh tin. Xét  ng cong k L =  0 (Pk.N + tr).Bk L(t) (*) c to ra b*ng cách bin )i Affine các vector Pk. Ta s ch ng minh  ng cong này chính là P’(t). Khai trin (*) ta có: k L =  0 Pk.N.Bk L(t) + k L =  0 tr.Bk L(t) = k L =  0 Pk.N.Bk L(t) + tr. k L =  0 Bk L(t) (**) Nhng theo a th c Bernstein thì k L =  0 Bk L(t) = (1-t+t)L = 1 nên s hng th hai ca (**) s là tr. Vì vy, P’(t) n*m trên  ng cong Bezier to ra b i các im kim soát Pk. iii/ Tính ch"t ca bao l$i:  ng cong Bezier P(t) không bao gi i ra ngoài bao l$i ca nó. & ây, bao l$i ca các im kim soát là tp nh nh nh"t ch a t"t c' các im kim soát ó. Chng minh: Bao l$i ca các im kim soát c+ng chính là tp hp các t) hp l$i ca các im kim soát. Ta biu din t) hp tuyn tính ca các im Pk: P(t) = k L =  0 ak.Pk , ak ≥ 0 Do P(t) là t) hp l$i ca các im kim soát ∀t ∈ [0,1] và k L =  0 Bk L(t) = 1 Nên  ng cong Bezier s n*m trong bao l$i ca các im kim soát. iv/  chính xác tuyn tính:  ng cong Bezier có th tr thành mt  ng th!ng khi t"t c' các im kim soát n*m trên mt  ng th!ng vì khi ó bao l$i ca chúng là mt  ng th!ng Chng VI. Thit k ng cong và m t cong Bezier và B-Spline 76 nên  ng Bezier b k-p vào bên trong bao l$i nên nó c+ng tr thành  ng th!ng. v/ B"t k. mt  ng th!ng hay mt ph!ng nào c+ng luôn luôn ct  ng cong Bezier ít l%n hn so vi ct a giác kim soát. vi/ o hàm ca các  ng Bezier: Ta có: (P(t))’ = L. k L = −  0 1 ∆Pk.Bk L-1(t) , ∆Pk = Pk+1 - Pk Do ó, o hàm ca  ng cong Bezier là mt  ng cong Bezier khác c to ra t các vector kim soát ∆Pk ( Ta ch c%n l"y các im kim soát gc theo t ng cp  to ra các im kim soát cho (P(t))’. 6.1.6. ánh giá các ng cong Bezier B*ng các im kim soát, ta có th to ra các dng  ng cong khác nhau b*ng cách hiu chnh các im kim soát cho ti khi to ra c mt dng  ng cong mong mun. Công vic này lp i lp li cho n khi toàn b  ng cong tha yêu c%u. Tuy nhiên, khi ta thay )i b"t k. mt im kim soát nào thì toàn b  ng cong b thay )i theo. Nhng trong thc t, ta th ng mong mun ch thay )i mt ít v dng  ng cong g%n khu vc ang hiu chnh các im kim soát. Tính cc b yu ca  ng cong Bezier c biu hin qua các a th c Bk L(t) u khác 0 trên toàn kho'ng [0,1]. Mt khác  ng cong p(t) li là mt t) hp tuyn tính ca các im kim soát c gia tr ng b i các hàm Bk L(t) nên ta kt lun r*ng m(i im kim soát có 'nh h ng n  ng cong t"t c' các giá tr t ∈ [0,1]. Do ó, hiu chnh b"t k. mt im kim soát nào c+ng s 'nh h ng n dng ca toàn th  ng cong.  gi'i quyt bài toán này, ta s dng mt tp hp các hàm trn khác nhau. Các hàm trn này có giá mang (support: kho'ng mà trên ó hàm l"y giá tr khác 0) ch là mt ph%n ca kho'ng [0,1]. Ngoài giá mang này chúng có giá tr là 0. Th ng ta ch n các hàm trn là các a th c trên các giá mang ó, các giá mang này k nhau. Nh vy, các hàm trn chính là mt tp các a thc c  nh ngh a trên nh ng kho ng k nhau c ni li vi nhau  to nên mt  ng cong liên tc. Các Chng VI. Thit k ng cong và m t cong Bezier và B-Spline 77  ng cong kt qu' c g i là a thc riêng phn hay t ng ph%n (piecewise polynomial). Ví d: ta nh ngha hàm g(t) g$m 3 a th c a(t), b(t), c(t) nh sau: g(t) =      [2,3] mang giaï coï t)- (3 2 1 =c(t) [1,2] mang giaï coï) 2 3 -(t - 4 3 =b(t) [0,1] mang giaï coï t 2 1 =a(t) 2 2 2 Giá mang ca g(t) là [0,3] Các giá tr ca t ng vi các ch ni ca các on g i là nút (knut), ch!ng hn t=0,1,2,3 là bn nút ca g(t). Hn na, ti các ch( ni ca  ng cong g(t) là trn, không b g"p khúc. Do ó, ta g i ó là hàm Spline. Vy, mt hàm Spline cp m là a thc riêng phn cp m có  o hàm cp m -1 liên t c m i nút. Da trên tính ch"t ca hàm Spline, ta có th dùng nó nh các hàm trn  to ra  ng cong p(t) da trên các im kim soát P0,...,PL. Khi ó: P(t) = k L =  0 Pk.gk(t) T)ng quát hóa, ta xây dng mt hàm p(t) vi L+1 im kim soát nh sau: Vi m(i im kim soát Pk , ta có mt hàm trn tng ng Rk(t) và tp các nút gi là vector nút T=(t0,t1,...,tn) vi ti ∈ R, ti ≤ ti+1 . Khi ó: P(t) = k L =  0 Pk.Rk(t) 6.2. NG CONG SPLINE VÀ B-SPLINE 6.2.1. nh ngha Theo trên ta có: P(t) = k L =  0 Pk.Rk(t) (*) trong ó Pk vi k=1..L là các im kim soát. Rk(t) là các hàm trn liên tc trong m(i on con [ti , ti+1]và liên tc trên m(i nút. M(i Rk(t) là mt a th c riêng ph%n. Do ó  ng cong p(t) là t)ng ca các a th c này, l"y trên các im kim soát. Chng VI. Thit k ng cong và m t cong Bezier và B-Spline 78 Các on  ng cong riêng ph%n này gp nhau các im nút và to cho  ng cong tr nên liên tc. Ta g i nhng  ng cong nh vy là SPLINE. Cho trc mt vector nút thì có th có nhiu h hàm trn c dùng  to ra mt  ng cong Spline có th nh ngha trên vector nút ó. Mt h các hàm nh vy c g i là c s cho các Spline. Trong s các h hàm này, có mt c s c th mà các hàm trn ca nó có giá mang nh nh"t và nh vy nó em li kh' n/ng kim soát cc b ln nh"t. ó là các B- Spline, vi B vit tt ca ch Basic (c s ). i vi các hàm B-Spline, m(i a th c riêng ph%n to ra nó có mt cp m nào ó. Do ó, thay vì dùng ký hiu Rk(t) cho các hàm riêng ph%n này ta s ký hiu các hàm trn này là Nk,m(t). Do ó các  ng cong B-Spline có th biu din li: P(t) = k L =  0 Pk.Nk,m(t) TÓM L0I  xây dng các  ng cong B-Spline ta c%n có: • Mt vector nút T=(t0, t1, t2, ...,tk+m-1). • (L+1) im kim soát. • C"p m ca các hàm B-Spline và công th c c b'n cho hàm B-Spline Nk,m(t) là: Nk,m(t) = t t t t k k m k − −       + − 1 .Nk,m-1(t) + t t t t k m k m k + + + − −       1 .Nk+1,m-1(t) vi k=0..L ây là mt công th c  quy vi Nk,L(t) = ≤ + laûi ngæåüc0 1 1kk ttt  (Hàm h*ng b*ng 1 trên on (tk , tk+1) i vi các mt B-Spline, ta có công th c biu din tng t: P(u,v) = i M =  0 k L =  0 Pi,k.Ni,m(u).Nk,m(v) Nhn xét: Các ng Bezier là các ng B-Spline. 6.2.2. Các tính cht hu ích trong vic thit k các ng cong B-Spline i/ Các  ng B-Spline c"p m là các a th c riêng ph%n c"p m. Chúng là các Spline do chúng có m-2 c"p o hàm liên tc m i im trong giá mang ca chúng. Chng VI. Thit k ng cong và m t cong Bezier và B-Spline 79 Các hàm B-Spline c"p m to thành mt c s cho b"t k. Spline nào có cùng cp c nh ngha trên cùng các nút. Các Spline có th c biu din nh mt t) hp tuyn tính ca các B-Spline. ii/ Hàm trn B-Spline Nk,m(t) bt %u tk và kt thúc tk+m . Giá mang ca nó là [tk,tk+m]. Giá mang ca h các hàm Nk,m(t) vi k=0,...L là kho'ng [t0,tm+L]. iii/ Mt  ng cong B-Spline óng da trên L+1 im kim soát có th c to ra b*ng cách dùng phng trình  ng B-Spline tu%n hoàn sau: P(t) = k L =  0 Pk.N0,m((t-k) mod (L+1)) Vi gi' thit các nút cách u nhau trong nh ngha ca hàm N0,m(...). iv/ Nu dùng vector chu1n thì  ng cong B-Spline s ni suy các im kim soát %u tiên và cui cùng. Các hng kh i %u và kt thúc ca  ng cong ó s n*m d c theo các cnh %u tiên và cui cùng ca a giác kim soát. v/ M(i hàm B-Spline Nk,m(t) là không âm ∀t, và t)ng các h hàm này b*ng 1: k L =  0 Nk,m(t) = 1 ∀t ∈ [t0 , tm+L ] vi/ Các  ng cong da trên các B-Spline là bt bin Affin. Do ó,  bin )i mt  ng cong B-Spline, ch c%n bin )i các im kim soát, sau ó kh i to li  ng cong t các im kim soát ã c bin )i này. vii/ Mt  ng cong B-Spline s n*m trong bao l$i ca các im kim soát Mnh hn: & b"t k. t nào, ch có m hàm B-Spline là khác 0. Vì vy, m(i t  ng cong ph'i n*m trong bao l$i ca h%u ht m im kim soát kích hot k nhau. (Các im kim soát kích hot là các im mà ti ó hàm B-Spline khác 0) viii/ chính xác tuyn tính ca  ng cong B-Spline: Nu m im kim soát k nhau là tuyn tính cùng nhau thì bao l$i ca chúng là mt  ng th!ng. Do ó  ng cong c+ng s tr thành  ng th!ng. ix/ Tính ch"t gi'm  bin thiên: S giao im gia  ng cong B-Spline vi b"t k. mt mt ph!ng nào (nu có) luôn luôn nh hn s giao im (nu có) gia a giác kim soát ca nó vi mt ph!ng ó. 6.2.3. Thit k các m t Bezier và B-Spline Chng VI. Thit k ng cong và m t cong Bezier và B-Spline 80 Ta có th dùng các hàm trn Bezier và B-Spline  mô t' và v các mt cong. i vi các mt cong, ta biu din chúng di dng tham s qua mt hàm vector vi 2 tham s là u, v. Dng t)ng quát ca mt mt cong là: p(u,v) = (X(u,v),Y(u,v),Z(u,v)) ⇔ p(u,v) = X(u,v).i + Y(u,v).j + Z(u,v).k Khi u, v bin thiên trên mt kho'ng nào ó thì các hàm X(u,v), Y(u,v) và Z(u,v) thay )i giá tr, do ó làm cho v trí ca p(u,v) thay )i trong không gian 3 chiu. Chúng ta s không biu din các mt qua các hàm toán h c t ng minh mà s biu din chúng qua các im kim soát. Ví d: p(u,v) = (1-v).((1-u).P00 + u.P10) + v.((1-u).P01 + u.P11) dùng 4 im kim soát 4 góc là Pij vi các hàm trn là tuyn tính theo u, v. 6.2.4. Các bng Bezier  ng cong Bezier trong không gian 3 chiu có th c vit di dng là mt hàm ca tham s v vi L+1 im kim soát tùy thuc vào tham s u theo mt kiu nào ó: Ch!ng hn P(u,v) = k L =  0 Pk(u).Bk L(v) (*) Ngha là m(i  ng vin u là mt  ng cong Bezier chu1n, nhng nhng giá tr u khác nhau thì các im kim soát c+ng n*m nhng v trí khác nhau. Khi u bin thiên thì m(i im kim soát Pk(u) s chy trên mt  ng cong c th. Do ó, mt cong có th xem nh là mt s dch chuyn  ng Bezier trong không gian. Ta t ng tng mt a giác kim soát chuyn ng trong không gian và thay )i dng khi chuyn ng. & m(i v trí, a giác này to nên mt  ng cong Bezier và mt cong to thành chính là cái v t còn  li bên di ca  ng cong này. Ví d: Phép chiu phi cách ca mt mt c to ra b i vic ni suy tuyn tính gia 2  ng cong Bezier da trên 2 a giác kim soát là P0 và P1. M(i  ng cong kim soát pk(u) c ni suy tuyn tính gia 2 im kim soát Pk 0 và Pk 1 khi u bin thiên gia 0 và 1: pk(u) = (1-u).Pk 0 + u.Pk 1 k=0,1,2,3 Gi' s các  ng cong kim soát pk(u) chính là các  ng cong Bezier, m(i  ng cong này da trên m +1 im kim soát ca chúng. Chng VI. Thit k ng cong và m t cong Bezier và B-Spline 81 Vì vy: Pk(u) = i M =  0 Pi,k.Bi M(u) Kt hp pk(u) này vào phng trình (*) ta c: P(u,v) = i M =  0 k L =  0 Pi,k.Bi M(u).Bk L(v) (**) Ta g i ây là dng tích Tensor cho b/ng Bezier. C+ng ging nh các a giác kim soát trong 2D, mt khi a din kim soát là mt mng g$m có (M+1).(L+1) nh. Tóm li,  to ra mt b/ng ta ch c%n ch ra các v trí ca các nh này r$i sau ó áp dng phng trình (**)  v các  ng vin hay nh ngha dng mt cong. 6.2.5. Dán các bng Bezier vi nhau Mc ích là  to ra các dng mt ph c tp g$m nhiu b/ng Bezier kt li vi nhau mt cách trn tru các biên chung. Khi ni 2 b/ng Bezier li vi nhau, m(i b/ng có mt khi a din kim soát riêng và u c to ra t phng trình (*) vi u, v bin thiên trong kho'ng [0,1]. V"n  là làm sao cho 2 b/ng có th dán vào nhau mt cách trn tru. • Hai b/ng s gp nhau t"t c' các im d c theo biên chung nu các khi a din kim soát ca chúng khp nhau biên. Nh vy, ta ch c%n ch n các a giác kim soát biên  cho 2 b/ng $ng nh"t nhau biên. Có th th"y c iu này khi thay u=0 vào trong phng trình (*) trên. • Mt iu kin  na là m(i cp cnh ca khi a din mà nó gp nhau biên ph'i tuyn tính cùng nhau. 6.2.6. Các bng B-Spline Các hàm B-Spline có th c s dng trong dng tích Tensor thay cho các a th c Bernstein  t c tính kim soát cao hn khi thit k mt cong. iu ó có ngha ta s thay phng trình (**) thành: P(u,v) = i M =  0 k L =  0 Pi,k.Ni,m(u).Nk,m(v) Khi a din kim soát g$m có (L+1).(M+1) im kim soát; u,v bin thiên t 0 ti giá tr nút ln nh"t trong các vector nút tng ng ca chúng. Chng VI. Thit k ng cong và m t cong Bezier và B-Spline 82 i vi các b/ng B-Spline, ng i ta v#n dùng các B-Spline bc 4. Do vic ch n s im kim soát là không gii hn nên có th to ra nhiu dng mt cong r"t ph c tp. T"t nhiên khi thit k, ta ph'i ch n khi a din nút  to ra mt có dng mong mun.

Các file đính kèm theo tài liệu này:

  • pdf_giaotrinhlythuyetdohoach6.pdf