I. Đường cong Bezier & mặt cong Bezier
I.5. Đânh giâ câc đường cong Bezier & sự khâc biệt của câc đường cong Spline:
Bằng câc điểm kiểm soât, ta có thể tạora câcdạng đường cong khâc nhau ∑αkPk vớiαk ≥ 0 vă ∑α
∑B
P'(t)=(P(t))'= , ∆P∑ −∆ Lkk
bằng câch hiệu chỉnh câcđiểm kiểm soât cho tới khitạo ra đượcmột dạngđường cong mong muốn. công việc năy được lặp đi lặp lại cho đến khi toăn thể đường congthỏamên yíucầu.
Tuy nhiín, cómột vấnđề đốivớiđường congBezierlătính cụcbộyếucủa nó, nghĩa lăkhita thayđổi bấtkỳmộtđiểm kiểmsoâtnăo thìtoănbộđườngcong bị thayđổi theo, nhưngtrong thực tế thường ta mong muốn chỉthay đổi một ítvề dạngđườngcongởgầnkhuvựcđanghiệu chỉnhcâcđiểmkiểmsoât.
TínhcụcbộyếucủađườngcongBeziercó thểthấy đượcquaviệctấtcảcâc đa thứcBkL(t)đềukhâc0trínkhoảng[0,1].MặtkhâcđườngcongP(t)bảnthđnnó 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 BkL(t) nín ta suyra rằngmọi điểmkiểm soâtđều có ảnhhưởng đến đườngcongở tấtcảcâcgiâ trịt∈(0,1).Dođóhiệuchỉnh bấtkìđiểmkiểmsoâtnăocũng đềuảnh hưởngđếndạngđườngcongtríntoănthể.
Để giải quyết vấn đề năy ngườita đê đi đến sử dụng một tập câc hăm trộn khâc nhau thay vì chỉ một hăm trộn BkL(t) như của đường cong Bezier, câc hăm trộn năy có giâ mang chỉ lă một phần của khoảng [0,1], hay nói câch khâc lă mỗi hămtrộn sẽchỉtrộnvớimộtsố điểmkiểmsoâtđểcho ramộtphầncủađoạncong. Tập câc đoạn cong do mỗi hăm trộn mang lại sẽ tạo nín một đường cong mă ta mong muốn.Như vậy hăm trộn chính lămột tập câcđa thức đượcđịnh nghĩa trín nhữngkhoảngkề nhau,được nốilạivớinhauđể tạonínmột đường congliín tục. Câcđườngcongkếtquảđượcgọilăđathứcriíngphầnhaytừngphần.
Ví dụtađịnhnghĩahămg(t)gồm 3đathứca(t),b(t)văc(t)nhưsau: a(t)=1/2t2 có giâmang[0,1]
Trang92
Chương 5: Các phương pháp dựng đ
ường cong và mặt cong - Nguyễn Hữu Tài
g(t)= b(t)=3/4(t-3/2)2 cógiâmang[1,2] c(t)=1/2(3- t) 2 cógiâmagn[2,3] Giâmang củag(t)lă[0,3]
Câcgiâtrịcủatứngvớicâcchổnốicủacâcđoạngọilănút(knot).
Hơnnữatạicâcchổnốiđườngcongg(t)lătrơn,khôngbịgấpkhúc.Ta gọi đólăhămSpline.
VậymộthămSplinecấpmlăđathứcriíngphầncấpmcóđạohămcấpm-1liín tụcởmỗinút.DựatríntínhchấtcủahămSpline,tacóthểdùngnónhưmộthăm trộnđểtạorađườngcongP(t),dựatríncâcđiểmkiểmsoâtP0,P1,…,PL.
Khiđó:
L
k=0
II. Đường congSpline văB-Spline:
Một đường cong Spline được vẽ bởi chương trình AutoCad
MộthămSplinecấpmlăđathứcriíngphầncấpmcóđạohămcấpm-1liín tụcởmỗinút.
DựatríntínhchấtcủahămSpline,tacóthểdùngnónhưmộthămtrộnđểtạora đườngcongP(t),dựatríncâcđiểmkiểmsoâtP0,P1,…,PL.
Khiđó: Theotríntacó L k=0 L k=0
với: Pk:k=0,1,…,Llăcâcđiểmkiểmsoât.
Rk(t):k=0,1,…,Llăcâchămtrộn,liíntụctrongmỗi đoạncon[ti,ti+1]văở mỗinút.MỗiRk(t) lămộtđathứcriíngphần(piceewisepolynomial).Câcđoạn
Trang93
Chương 5: Các phương pháp dựng đ
ường cong và mặt cong - Nguyễn Hữu Tài
đườngcongriíngphầnnăygặpnhauởmỗinútvătạochođườngcongtrởnínliín tục.TagọinhữngđườngcongnhưvậylăSpline.Chotrướcmộtvectornút,thìcó nhiềuhọhămtrộncóthểđượcdùngđểtạoracâcđườngcongSplinecóthểđịnh nghĩatrínvectornútđó.MỗihọnhưvậyđượcgọilăcơsởchocâcSpline.Trong sốcâchọhămnăy,cómột cơsởcụthểmăcâchămtrộncủanócógiâmangnhỏ nhấtmănhờvậynóđemlạikhảnăngkiểmsoâtcụcbộlớnnhất.ĐólăcâcB- Spline(BlăviếttắtcủaBasic).
ĐốivớicâchămB-Spline,mỗiđathứcriíngphầntạonínnócómộtcấp năođó,ngườitagọilăm,dođóthayvìdùngkýhiệu Rk(t)chocâchămriíngphần năybởiNk,m(t).
DođóđườngcongB-Splinecó thểbiểudiển lă:
L
k=0
TrongcâchămB-SplinecấpmthìhămB-Splinecấp2văcấp3lăquangtrọng nhất,nóđượcdùngtronghầuhếtcâcchươngtrìnhxửlýđồhọa.
Tómlại:đểxđydựngcâcđườngcongB-Splinetacầncó: MộtvĩctơnútT=(t0,t1,…)
(L+1)điểmkiểmsoâtPk
CấpmcủacâchămB-SplinevăcôngthứccơbảnchohămB-Spline Nk,m(t). P(t)= ∑PkGk(t) P(t)= ∑PkRk(t) ∑= mkk tNPtP ,)()( =) (,lk tN P(u)=[u u2 u 1]McPk
Nk,m(t)=Nk,m-1(t)+Nk+1,m-1(t) Đđylămộtcôngthứcđệquyvới
1 nÕutk <tk+1
0 ng−îcl¹i
(Hămhằng1trínđoạn[tk,tk+1])
ĐốivớicâcmặtB-Splinethìtacócongthứcbiểudiểntươngtự:
m L
P(u,v)=∑∑Pi,k Ni,m(u)Nk,m(v)
i=0k=0
(tươngtựnhưmặtBezier)
* Ghi chú :CâcđườngBezierlăcâcđườngB-Spline.
SauđđylămộtcongthứcchođườngcongSplinebậc3cótínlăHermite Splinevớicongthứcsau:
Pk-1 3
Pk+2
Pk+2
vớimatrậncốtyếulă
-s 2-s s-2 s Mc= 2s s-3 3-2s -s -s 0 s 0 0 1 0 0 vớis=(1-t)/2. Trang94 Chương 5: Các phương pháp dựng đ
ường cong và mặt cong - Nguyễn Hữu Tài
Hay ởdạngtườngminhsẽlă:
P(u)=Pk-1(-su3+2su2-su)+Pk[(2-s)u3+(s-3)u2 +1]+ Pk+1[(s-2)u3+(3-2s)u2+su)] +Pk+2(su3-su2)
=Pk-1CAR0(u)+Pk CAR1(u)+Pk+1CAR2(u)+Pk+2CAR3(u) vătagọiCARk(u)vớik=0,1,2,3lăcâchămtrộn(blending).
Trang95