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 thc toán hc
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
thc toán hc 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 hc 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 thc 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...
14 trang |
Chia sẻ: hunglv | Lượt xem: 1394 | Lượt tải: 0
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 thc toán hc
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
thc toán hc 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 hc 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 thc 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à mt 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 chn 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 gi là
ng cong Bezier ca các im P0,P1 ,P2,...,PL
Các im Pi , i=0,1,...,L c gi 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 gi 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
thc:
P(t) =
k
L
=
0
Pk.Bk
L(t)
Chng VI. Thit k
ng cong và mt 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 gi là a thc Bernstein, c cho b
i công thc:
Bk
L(t) =
L
k L k
!
!( )!−
(1-t)L-k.tk vi L ≥ k
M(i a thc Bernstein có bc là L. Thông th ng ta còn gi 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 thc, 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à mt 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 thc 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 thc 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 ha 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à mt 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à mt 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 mi 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 thc 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à mt 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
chng 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 thc 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 cha 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à mt 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 thc 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 trng 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 chn các hàm trn là các a thc 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
nhng khong 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à mt cong Bezier và B-Spline
77
ng cong kt qu' c gi 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 thc 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 gi 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 gi ó 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 mi 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 thc riêng ph%n.
Do ó ng cong p(t) là t)ng ca các a thc này, l"y trên các im kim soát.
Chng VI. Thit k
ng cong và mt 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 gi 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
gi 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 thc 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 thc 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 thc 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 thc 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 thc 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
mi im trong giá mang ca
chúng.
Chng VI. Thit k
ng cong và mt 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 dc 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 mt Bezier và B-Spline
Chng VI. Thit k
ng cong và mt 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 hc 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à mt 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 gi â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 phc 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 dc 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 chn 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 thc
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à mt 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 chn s
im kim soát là không gii hn nên có th to ra nhiu dng mt cong r"t phc tp.
T"t nhiên khi thit k, ta ph'i chn 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:
- _giaotrinhlythuyetdohoach6.pdf