1. Trang chủ
  2. » Công Nghệ Thông Tin

Đường cong và mặt cong Bezier

14 553 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 192,06 KB

Nội dung

Đường cong và mặt cong Bezier

CH NG VIƯƠ THI T K Đ NG M T CONG Ế Ế ƯỜ Ặ BEZIER B-SPLINE Khác v i nh ng ph ng pháp bi u di n m t đ 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 d ng đ ng m tườ ở ẽ ế ụ ỉ ạ ườ ặ khác nhau d a trên các d li u.ự ữ ệ Đi u này có nghĩa là v i m t đ ng cong cho tr c mà ta ch a xác đ nh đ cề ớ ộ ườ ướ ư ị ượ công th c toán h c c a nó thì làm th nào đ có th n m b t đ c d ng c a đ ngứ ọ ủ ế ể ể ắ ắ ượ ạ ủ ườ cong đó m t cách t ng đ i chính xác qua vi c s d ng m t t p nh các đi m Pộ ươ ố ệ ử ụ ộ ậ ỏ ể 0 , P 1 , . cùng v i m t ph ng pháp n i suy nào đó t t p đi m này đ t o ra đ ng congớ ộ ươ ộ ừ ậ ể ể ạ ườ mong mu n v i m t đ chính xác cho phép.ố ớ ộ ộ Có nhi u cách đ n m b t đ c đ ng cong cho tr c, ch ng h n:ề ể ắ ắ ượ ườ ướ ẳ ạ • L y m t m u đ ng cong ch ng vài ch c đi m cách nhau t ng đ i ng n r iấ ộ ẫ ườ ừ ụ ể ươ ố ắ ồ tìm m t hàm toán h c ch nh hàm này sao cho nó đi qua các đi m này vàộ ọ ỉ ể kh p v i đ ng cong ban đ u. Khi đó, ta có đ c công th c c a đ ng vàớ ớ ườ ầ ượ ứ ủ ườ dùng nó đ v l i đ ng cong.ể ẽ ạ ườ • Cách khác là dùng m t t p các đi m ki m soát dùng m t thu t toán đ xâyộ ậ ể ể ộ ậ ể d ng nên m t đ ng cong c a riêng nó d a trên các đi m này. Có th đ ngự ộ ườ ủ ự ể ể ườ cong ban đ u đ ng cong t o ra không kh p nhau l m, khi đó ta có th diầ ườ ạ ớ ắ ể chuy n m t vài đi m ki m soát lúc này thu t toán l i phát sinh m t đ ngể ộ ể ể ậ ạ ộ ườ cong m i d a trên t p đi m ki m soát m i. Ti n trình này l p l i cho đ n khiớ ự ậ ể ể ớ ế ặ ạ ế đ ng cong t o ra kh p v i đ ng cong ban đ u.ườ ạ ớ ớ ườ ầ đây, ta s ti p c n v n đ theo ph ng pháp th hai, dùng đ n các đ ng congỞ ẽ ế ậ ấ ề ươ ứ ế ườ Bezier B-Spline đ t o các đ ng m t.ể ạ ườ ặ Gi s m t đi m trong không gian đ c bi u di n d i d ng vector tham s p(t).ả ử ộ ể ượ ể ễ ướ ạ ố V i các đ ng cong 2D, p(t) = (x(t), y(t)) các đ ng 3D, p(t) = (x(t), y(t), z(t)).ớ ườ ườ 6.1. Đ NG CONG BEZIER M T BEZIERƯỜ Ặ Ch ng VI. ươ Thi t k đ ng cong m t cong Bezier B-Splineế ế ườ ặ 6.1.1. Thu t toán Casteljauậ Đ xây d ng đ ng cong p(t), ta d a trên m t dãy các đi m cho tr c r i t o raể ự ườ ự ộ ể ướ ồ ạ giá tr p(t) ng v i m i giá tr t nào đó. Vi c thay đ i các đi m này s làm thay đ iị ứ ớ ỗ ị ệ ổ ể ẽ ổ d ng c a đ ng cong. Ph ng pháp này t o ra đ ng cong d a trên m t dãy cácạ ủ ườ ươ ạ ườ ự ộ b c n i suy tuy n tính hay ướ ộ ế n i suy kho ng gi aộ ả ữ (In-Betweening). Ví d : V i 3 đi m Pụ ớ ể 0 , P 1 , P 2 ta có th xây d ng m t Parabol n i suy t 3 đi mể ự ộ ộ ừ ể này b ng cách ch n m t giá tr t ằ ọ ộ ị ∈ [0, 1] nào đó r i chia đo n Pồ ạ 0 P 1 theo t l t, ta đ cỉ ệ ượ đi m Pể 0 1 trên P 0 P 1 . T ng t , ta chia ti p Pươ ự ế 1 P 2 cũng theo t l t, ta đ c Pỉ ệ ượ 1 1 . N i Pố 0 1 P 1 1 , l i l y đi m trên Pạ ấ ể 0 1 P 1 1 chia theo t l t, ta đ c Pỉ ệ ượ 0 2 . V i cách làm này, ta s l y nh ng giá tr t khác ớ ẽ ấ ữ ị ∈ [0, 1] thì s đ c t p đi m Pẽ ượ ậ ể 0 2 . Đó chính là đ ng cong p(t).ườ Ta bi u di n b ng ph ng trình:ể ễ ằ ươ P 0 1 (t) = (1-t).P 0 + t.P 1 (1) P 1 1 (t) = (1-t).P 1 + t.P 2 (2) P 0 2 (t) = (1-t).P 0 1 + t.P 1 1 (3) Thay (1), (2) vào (3) ta đ c:ượ P(t) = P 0 2 (t) = (1-t) 2 .P 0 + 2t.(1-t).P 1 + t 2 .P 2 Đây là m t đ ng cong b c 2 theo t nên nó là m t Parabol.ộ ườ ậ ộ T ng quát hóa ta có thu t toán Casteljau cho (L+1) đi m:ổ ậ ể Gi s ta có t p đi m: Pả ử ậ ể 0 , P 1 , P 2 , ., P L V i m i giá tr t cho tr c, ta t o ra đi m Pớ ỗ ị ướ ạ ể i r (t) th h th r, t th h th (r - 1)ở ế ệ ứ ừ ế ệ ứ tr c đó, ta có:ướ P i r (t) = (1-t).P i r-1 (t) + t.P i+1 r-1 (t) (3’) r = 0,1, .,L i = 0, .,L-r Th h cu i cùng Pế ệ ố 0 L (t) đ c g i là ượ ọ đ ng cong Bezierườ c a các đi m Pủ ể 0 ,P 1 ,P 2 , .,P L Các đi m Pể i , i=0,1, .,L đ c g i là các ượ ọ đi m ki m soátể ể hay các đi m Bezier.ể Đa giác t o b i các đi m ki m soát này g i là ạ ở ể ể ọ đa giác ki m soátể hay đa giác Bezier. 6.1.2. D ng Bernstein c a các đ ng cong Bezierạ ủ ườ 70 Ch ng VI. ươ Thi t k đ ng cong m t cong Bezier B-Splineế ế ườ ặ Đ ng cong Bezier d a trên (L+1) đi m ki m soát Pườ ự ể ể 0 ,P 1 , .,P L đ c cho b i côngượ ở th c:ứ P(t) = k L = ∑ 0 P k .B k L (t) Trong đó, P(t) là m t đi m trong m t ph ng ho c trong không gian.ộ ể ặ ẳ ặ B k L (t) đ c g i là đa th c Bernstein, đ c cho b i công th c:ượ ọ ứ ượ ở ứ B k L (t) = L k L k ! !( )!− (1-t) L-k .t k v i L ớ ≥ k M i đa th c Bernstein có b c là L. Thông th ng ta còn g i các Bỗ ứ ậ ườ ọ k L (t) là các hàm tr nộ (blending function). T ng t , đ i v i m t Bezier ta có ph ng trình sau:ươ ự ố ớ ặ ươ P(u,v) = i M = ∑ 0 i L = ∑ 0 P i,k .B i M (u).B k L (v) Trong tr ng h p này, kh i đa di n ki m soát s có (M+1).(L+1) đ nh.ườ ợ ố ệ ể ẽ ỉ Đ ng cong Bezier b c 2ườ ậ Đ ng cong Bezier b c 3ườ ậ Hình 6.1 6.1.3. D ng bi u di n ma tr n c a đ ng Bezierạ ể ễ ậ ủ ườ Đ thích h p cho vi c x lý trên máy tính, ta bi u di n hai m ng BL(t) P nhể ợ ệ ử ể ễ ả ư sau: B L (t) = (B 0 L (t), B 1 L (t), ., B L L (t)) P = (P 0 ,P 1 , .,P L ) Do đó: P(t) = B L (t).P (tích vô h ng)ướ hay P(t) = B L (t).P T (P T là d ng chuy n v c a P)ạ ể ị ủ D i d ng đa th c, có th bi u di n Bướ ạ ứ ể ể ễ k L (t) nh sau:ư B k L (t) = a 0 + a 1 .t + a 2 .t 2 + . + a L .t L = (t 0 ,t 1 , .,t L ).(a 0 ,a 1 , .,a L ) Do đó P(t) có th bi u di n l i nh sau:ể ể ễ ạ ư 71 P 1 1 P 1 P 0 1 P 1 P 0 2 P 2 Ch ng VI. ươ Thi t k đ ng cong m t cong Bezier B-Splineế ế ườ ặ P(t) = Pow L (t).Bez L .P T V i:ớ • Pow L (t) = (t 0 ,t 1 , .,t L ) • Bez L là ma tr n bi u di n m ng Bậ ể ễ ả L (t) trong đó m i hàng i c a ma tr n ngỗ ủ ậ ứ v i các h s t ng ng (aớ ệ ố ươ ứ 0 ,a 1 , .,a L ) c a đa th c Bủ ứ i L (t) t i v trí (i,j) trong ma tr nạ ị ậ Bez L có giá tr Bezị L (i,j) = (-1) j-i .C n i .C i j Ví dụ: Ma tr n Bezậ 3 cho các đ ng Bezier b c 3 ườ ậ Bez 3 = 1 0 0 0 3 3 0 0 3 6 3 0 1 3 3 1 − − − −             6.1.4. T o v các đ ng Bezierạ ẽ ườ Đ t o ra m t đ ng cong Bezier t m t dãy các đi m ki m soát ta s áp d ngể ạ ộ ườ ừ ộ ể ể ẽ ụ ph ng pháp l y m u hàm p(t) các giá tr cách đ u nhau c a tham s t, ví d có thươ ấ ẫ ở ị ề ủ ố ụ ể l y ti = i/N, i=0,1, .,N. Khi đó ta s đ c các đi m P(tấ ẽ ượ ể i ) t công th c Bezier.ừ ứ N i các đi m này b ng các đo n th ng ta s đ c đ ng cong Bezier g n đúng.ố ể ằ ạ ẳ ẽ ượ ườ ầ Đ tính P(tể i ) ta có th áp d ng ma tr n c a P(t) trên trong đó ch có thành ph nể ụ ậ ủ ở ỉ ầ Pow L (t i ) là thay đ i, còn tích Bezổ L .P T v i P = (Pớ 0 ,P 1 , .,P L ) là không thay đ i.ổ Sau đây là th t c minh h a vi c v đ ng cong Bezier trong m t 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 72 Ch ng VI. ươ Thi t k đ ng cong m t cong Bezier B-Splineế ế ườ ặ CLk:=tich(k+1,l)/tich(1,l-k); end; function Xmu(x:real;mu:word):real; 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; 73 Ch ng VI. ươ Thi t k đ ng cong m t cong Bezier B-Splineế ế ườ ặ begin sodiem:=100; dx:=1/sodiem; 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 ch t c a đ ng cong Bezierấ ủ ườ i/ N i suy đ c các đi m đ u cu i.ộ ượ ể ầ ố Ch ng minhứ : Ta có: P(t) = k L = ∑ 0 P k .B k L (t) Do đó P(0) = k L = ∑ 0 P k .B k L (0) trong đó: B k L (0) = L k L k ! !( )!− (1-0) L-k .0 k ∀k ≠ 0 k ≠ L = L k L k ! !( )!− .0 = 0 Vì v y,ậ P(0) = P 0 .B 0 L (0) + P L .B L L (0) = P 0 + 0 = P 0 Lý lu n t ng t cho P(1). Ta có P(1) = Pậ ươ ự L . ii/ Tính b t bi n Affine:ấ ế 74 Ch ng VI. ươ Thi t k đ ng cong m t cong Bezier B-Splineế ế ườ ặ Khi bi n đ i m t đ ng cong Bezier, ta không c n bi n đ i m i đi m trên đ ngế ổ ộ ườ ầ ế ổ ọ ể ườ cong m t cách riêng r mà ch c n bi n đ i các đi m ki m soát c a đ ng cong đóộ ẻ ỉ ầ ế ổ ể ể ủ ườ r i s d ng công th c Bernstein đ tái t o l i đ ng cong Bezier đã đ c bi n đ i.ồ ử ụ ứ ể ạ ạ ườ ượ ế ổ Ch ng minhứ : Gi s đi m P(t) bi n đ i Affine thành P’(t)ả ử ể ế ổ P’(t) = P(t).N + tr = k L = ∑ 0 P k .B k L (t).N + tr Trong đó: N: ma tr n bi n đ i.ậ ế ổ tr: vector t nh ti n.ị ế Xét đ ng cong ườ k L = ∑ 0 (P k .N + tr).B k L (t) (*) đ c t o ra b ng cách bi n đ i Affine các vector Pượ ạ ằ ế ổ k . Ta s ch ng minh đ ng congẽ ứ ườ này chính là P’(t). Khai tri n (*) ta có: ể k L = ∑ 0 P k .N.B k L (t) + k L = ∑ 0 tr.B k L (t) = k L = ∑ 0 P k .N.B k L (t) + tr. k L = ∑ 0 B k L (t) (**) Nh ng theo đa th c Bernstein thì ư ứ k L = ∑ 0 B k L (t) = (1-t+t) L = 1 nên s h ng th hai c aố ạ ứ ủ (**) s là tr.ẽ Vì v y, P’(t) n m trên đ ng cong Bezier t o ra b i các đi m ki m soát Pậ ằ ườ ạ ở ể ể k . iii/ Tính ch t c a bao l i: đ ng cong Bezier P(t) không bao gi đi ra ngoài bao l iấ ủ ồ ườ ờ ồ c a nó.ủ đây, bao l i c a các đi m ki m soát là t p đ nh nh nh t ch a t t c các đi mỞ ồ ủ ể ể ậ ỉ ỏ ấ ứ ấ ả ể ki m soát đó.ể Ch ng minhứ : Bao l i c a các đi m ki m soát cũng chính là t p h p các t h p l i c a cácồ ủ ể ể ậ ợ ổ ợ ồ ủ đi m ki m soát.ể ể Ta bi u di n t h p tuy n tính c a các đi m Pk:ể ễ ổ ợ ế ủ ể P(t) = k L = ∑ 0 a k .P k , a k ≥ 0 75 Ch ng VI. ươ Thi t k đ ng cong m t cong Bezier B-Splineế ế ườ ặ Do P(t) là t h p l i c a các đi m ki m soát ổ ợ ồ ủ ể ể ∀t ∈ [0,1] k L = ∑ 0 B k L (t) = 1 Nên đ ng cong Bezier s n m trong bao l i c a các đi m ki m soát.ườ ẽ ằ ồ ủ ể ể iv/ Đ chính xác tuy n tính: ộ ế Đ ng cong Bezier có th tr thành m t đ ng th ng khi t t c các đi mườ ể ở ộ ườ ẳ ấ ả ể ki m soát n m trên m t đ ng th ng vì khi đó bao l i c a chúng là m tể ằ ộ ườ ẳ ồ ủ ộ đ ng th ng 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ỳ m t đ ng th ng hay m t ph ng nào cũng luôn luôn c t đ ng congấ ộ ườ ẳ ặ ẳ ắ ườ Bezier ít l n h n so v i c t đa giác ki m soát.ầ ơ ớ ắ ể vi/ Đ o hàm c a các đ ng Bezier:ạ ủ ườ Ta có: (P(t))’ = L. k L = − ∑ 0 1 ∆P k .B k L-1 (t) , ∆P k = P k+1 - P k Do đó, đ o hàm c a đ ng cong Bezier là m t đ ng cong Bezier khác đ cạ ủ ườ ộ ườ ượ t o ra t các vector ki m soát ạ ừ ể ∆P k ( Ta ch c n l y các đi m ki m soát g c theoỉ ầ ấ ể ể ố t ng c p đ t o ra các đi m ki m soát cho (P(t))’.ừ ặ ể ạ ể ể 6.1.6. Đánh giá các đ ng cong Bezierườ B ng các đi m ki m soát, ta có th t o ra các d ng đ ng cong khác nhau b ngằ ể ể ể ạ ạ ườ ằ cách hi u ch nh các đi m ki m soát cho t i khi t o ra đ c m t d ng đ ng congệ ỉ ể ể ớ ạ ượ ộ ạ ườ mong mu n. Công vi c này l p đi l p l i cho đ n khi toàn b đ ng cong th a yêuố ệ ặ ặ ạ ế ộ ườ ỏ c u.ầ Tuy nhiên, khi ta thay đ i b t kỳ m t đi m ki m soát nào thì toàn b đ ng congổ ấ ộ ể ể ộ ườ b thay đ i theo. Nh ng trong th c t , ta th ng mong mu n ch thay đ i m t ít vị ổ ư ự ế ườ ố ỉ ổ ộ ề d ng đ ng cong g n khu v c đang hi u ch nh các đi m ki m soát.ạ ườ ở ầ ự ệ ỉ ể ể Tính c c b y u c a đ ng cong Bezier đ c bi u hi n qua các đa th c Bụ ộ ế ủ ườ ượ ể ệ ứ k L (t) đ u khác 0 trên toàn kho ng [0,1]. M t khác đ ng cong p(t) l i là m t t h p tuy nề ả ặ ườ ạ ộ ổ ợ ế tính c a các đi m ki m soát đ c gia tr ng b i các hàm Bủ ể ể ượ ọ ở k L (t) nên ta k t lu n r ngế ậ ằ m i đi m ki m soát có nh h ng đ n đ ng cong t t c các giá tr t ỗ ể ể ả ưở ế ườ ở ấ ả ị ∈ [0,1]. Do đó, hi u ch nh b t kỳ m t đi m ki m soát nào cũng s nh h ng đ n d ng c a toànệ ỉ ấ ộ ể ể ẽ ả ưở ế ạ ủ th đ ng cong.ể ườ 76 Ch ng VI. ươ Thi t k đ ng cong m t cong Bezier B-Splineế ế ườ ặ Đ gi i quy t bài toán này, ta s d ng m t t p h p các hàm tr n khác nhau. Cácể ả ế ử ụ ộ ậ ợ ộ hàm tr n này có ộ giá mang (support: kho ng mà trên đó hàm l y giá tr khác 0) ch làả ấ ị ỉ m t ph n c a 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 tr n là các đa th c trên các giá mang đó, các giá mang nàyườ ọ ộ ứ k nhau. Nh v y, các hàm tr n chính là m t ề ư ậ ộ ộ t p các đa th c đ c đ nh nghĩa trênậ ứ ượ ị nh ng kho ng k nhauữ ả ề đ c n i l i v i nhau đ t o nên m t đ ng cong liên t c.ượ ố ạ ớ ể ạ ộ ườ ụ Các đ ng cong k t qu đ c g i là ườ ế ả ượ ọ đa th c riêng ph nứ ầ hay t ng ph n (piecewiseừ ầ polynomial). Ví d : ta đ nh nghĩa 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 c a g(t) là [0,3]ủ Các giá tr c a t ng v i ị ủ ứ ớ các ch n i ỗ ố c a các đo n g i là ủ ạ ọ nút (knut), ch ng h nẳ ạ t=0,1,2,3 là b n nút c a g(t). H n n a, t i các ch n i c a đ ng cong g(t) là tr n,ố ủ ơ ữ ạ ỗ ố ủ ườ ơ không b g p khúc. Do đó, ta g i đó là hàm ị ấ ọ Spline. V y, m t hàm Spline c p m là đa th c riêng ph n c p m có đ o hàm c p m -1ậ ộ ấ ứ ầ ấ ạ ấ liên t c m i nút.ụ ở ỗ D a trên tính ch t c a hàm Spline, ta có th dùng nó nh các hàm tr n đ t o raự ấ ủ ể ư ộ ể ạ đ ng cong p(t) d a trên các đi m ki m soát Pườ ự ể ể 0 , .,P L . Khi đó: P(t) = k L = ∑ 0 P k .g k (t) T ng quát hóa, ta xây d ng m t hàm p(t) v i L+1 đi m ki m soát nh sau:ổ ự ộ ớ ể ể ư V i m i đi m ki m soát Pớ ỗ ể ể k , ta có m t hàm tr n t ng ng Rộ ộ ươ ứ k (t) t p các nútậ g i là vector nútọ T=(t 0 ,t 1 , .,t n ) v i tớ i ∈ R, t i ≤ t i+1 . Khi đó: P(t) = k L = ∑ 0 P k .R k (t) 6.2. Đ NG CONG SPLINE B-SPLINEƯỜ 6.2.1. Đ nh nghĩaị 77 Ch ng VI. ươ Thi t k đ ng cong m t cong Bezier B-Splineế ế ườ ặ Theo trên ta có: P(t) = k L = ∑ 0 P k .R k (t) (*) trong đó P k v i k=1 L là các đi m ki m soát.ớ ể ể R k (t) là các hàm tr n liên t c trong m i đo n con [tộ ụ ỗ ạ i , t i+1 ]và liên t c trênụ m i nút. M i Rỗ ỗ k (t) là m t đa th c riêng ph n.ộ ứ ầ Do đó đ ng cong p(t) là t ng c a các đa th c này, l y trên các đi m ki m soát.ườ ổ ủ ứ ấ ể ể Các đo n đ ng cong riêng ph n này g p nhau các đi m nút t o cho đ ngạ ườ ầ ặ ở ể ạ ườ cong tr nên liên t c. Ta g i nh ng đ ng cong nh v y là ở ụ ọ ữ ườ ư ậ SPLINE. Cho tr c m t vector nút thì có th có nhi u h hàm tr n đ c dùng đ t o raướ ộ ể ề ọ ộ ượ ể ạ m t đ ng cong Spline có th đ nh nghĩa trên vector nút đó. M t h các hàm nh v yộ ườ ể ị ộ ọ ư ậ đ c g i là ượ ọ c sơ ở cho các Spline. Trong s các h hàm này, có m t c s c th mà các hàm tr n c a nó có giá mangố ọ ộ ơ ở ụ ể ộ ủ nh nh t nh v y nó đem l i kh năng ki m soát c c b l n nh t. Đó là các ỏ ấ ờ ậ ạ ả ể ụ ộ ớ ấ B- Spline, v i B vi t t t c a ch Basic (c s ).ớ ế ắ ủ ữ ơ ở Đ i v i các hàm B-Spline, m i đa th c riêng ph n t o ra nó ố ớ ỗ ứ ầ ạ có m t c p mộ ấ nào đó. Do đó, thay vì dùng ký hi u Rk(t) cho các hàm riêng ph n này ta s ký hi u các hàmệ ầ ẽ ệ tr n này là ộ N k,m (t). Do đó các đ ng cong B-Spline có th bi u di n l i:ườ ể ể ễ ạ P(t) = k L = ∑ 0 P k .N k,m (t) TÓM L IẠ Đ xây d ng các đ ng cong B-Spline ta c n có:ể ự ườ ầ • M t vector nút T=(tộ 0 , t 1 , t 2 , .,t k+m-1 ). • (L+1) đi m ki m soát.ể ể • C p m c a các hàm B-Spline công th c c b n cho hàm B-Spline Nấ ủ ứ ơ ả k,m (t) là: N k,m (t) = t t t t k k m k − −       + − 1 .N k,m-1 (t) + t t t t k m k m k + + + − −       1 .N k+1,m-1 (t) v i k=0 Lớ Đây là m t công th c đ quy v i Nộ ứ ệ ớ k,L (t) =    ≤ + laûi ngæåüc0 1 1kk ttt  (Hàm h ng b ng 1 trên đo n (tằ ằ ạ k , t k+1 ) Đ i v i các m t B-Spline, ta có công th c bi u di n t ng t :ố ớ ặ ứ ể ễ ươ ự P(u,v) = i M = ∑ 0 k L = ∑ 0 P i,k .N i,m (u).N k,m (v) Nh n xétậ : Các đ ng Bezier là các đ ng B-Spline.ườ ườ 78 . đ ng cong và m t cong Bezier và B-Splineế ế ườ ặ Khi bi n đ i m t đ ng cong Bezier, ta không c n bi n đ i m i đi m trên đ ngế ổ ộ ườ ầ ế ổ ọ ể ườ cong. cong Bezier ủ ườ 70 Ch ng VI. ươ Thi t k đ ng cong và m t cong Bezier và B-Splineế ế ườ ặ Đ ng cong Bezier d a trên (L+1) đi m ki m soát Pườ ự ể ể 0

Ngày đăng: 31/12/2013, 23:47

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w