ÑOÀ HOÏA 2DÑOÀ HOÏA 2D
ÑÖÔØNG CONGÑÖÔØNG CONG
Giaûng vieân : Buøi Tieán Leân
Phaân loaïiPhaân loaïi
Quan ñieåm toaùn hoïc- Ñöôøng cong ñöôïc bieåu dieãn baèng haøm soá- Ñöôøng cong ñöôïc bieåu dieãn baèng phöông trình tham soá
Quan ñieåm thieát keá- Ñöôøng cong CAD (Computer Aided Design)
Trang Trang Trang Trang Trang Trang Trang Trang 22222222
- Ñöôøng cong CAD (Computer Aided Design)
Ñöôøng cong ñöôïc bieåu dieãn baèng Ñöôøng cong ñöôïc bieåu dieãn baèng haøm soáhaøm soá
Baøi toaùnBaøi toaùn
InputHaøm soá y = f(x)Mieàn ñoái soá [xmin, xmax]
OutputÑoà thò haøm soá
Trang Trang Trang Trang Trang Trang Trang Trang 44444444xmaxxmin
y=f(x)
Thuaät toaùnThuaät toaùnBöôùc 1 : Chia mieàn ñoái soá ra N ñoaïn baèng nhau
Trang Trang Trang Trang Trang Trang Trang Trang 55555555
x0 x1 x2 xN-1xNxmin xmax
Thuaät toaùnThuaät toaùnBöôùc 2 : Tính y
y
y1 y2
yN-1
yN
Trang Trang Trang Trang Trang Trang Trang Trang 66666666
x0 x1 x2 xN-1xNxmin xmax
y0yN-1
Thuaät toaùnThuaät toaùnBöôùc 3 : Keû ñöôøng gaáp khuùc ñi qua N + 1 ñieåm.
y
y1 y2
yN-1
yN
Trang Trang Trang Trang Trang Trang Trang Trang 77777777
x0 x1 x2 xN-1xN
y0yN-1
xmin xmax
Caøi ñaëtCaøi ñaët// Hàm vẽ đường cong hàm số
void DrawCurve2D(CDC *pDC, TFunc2D f, double xmin, double xmax)
{
double ∆x, x, y;
∆x = (xmax – xmin)/N;
x = xmin;
y = f(x);
pDC->MoveTo(ConvertWorldToScreen2D(x, y));
for(int i=1; i<=N; i++)
Trang Trang Trang Trang Trang Trang Trang Trang 88888888
for(int i=1; i<=N; i++)
{
x += ∆x;
y = f(x);
pDC->LineTo(ConvertWorldToScreen2D(x, y));
}
}
Caøi ñaëtCaøi ñaët// Lớp phương trình hàm
class TFunc2D {
virtual double operator () (double x) = 0;
};
Trang Trang Trang Trang Trang Trang Trang Trang 99999999
Vaán ñeà phaân ñoaïnVaán ñeà phaân ñoaïn
Soá phaân ñoaïn N laø bao nhieâu ?
ñoä phaân giaûi coät
Trang Trang Trang Trang Trang Trang Trang Trang 1010101010101010
Ñoà thò ña thöùc baäc baÑoà thò ña thöùc baäc ba
Choy = ax3 + bx2 + cx + dx ∈ [xmin, xmax]
[ ]4,4x
3x2.0x2.0x1.0y 23
−∈
+−−=
Trang Trang Trang Trang Trang Trang Trang Trang 1111111111111111
[ ]4,4x −∈
Vaán ñeà tính giaù trò ña thöùcVaán ñeà tính giaù trò ña thöùcCaùch tính thoâng thöôønga*x*x*x + b*x*x + c*x + d;
Caàn 6 pheùp nhaân vaø 3 pheùp coäng
Caùch tính Horner((a*x + b)*x + c)*x + d
Caàn 3 pheùp nhaân vaø 3 pheùp coäng
Trang Trang Trang Trang Trang Trang Trang Trang 1212121212121212
Caàn 3 pheùp nhaân vaø 3 pheùp coäng
Caùch tính caûi tieán?
Vaán ñeà tính giaù trò ña thöùcVaán ñeà tính giaù trò ña thöùcÑa thöùc baäc nhaát y = ax + b
Caùch tính thoâng thöôøng Caùch tính caûi tieán
yi = axi + b y0yi+1
=
=
ax0 + b
yi + a∆∆∆∆x
Tính Tính
y = ax + b y = ax + b
Trang Trang Trang Trang Trang Trang Trang Trang 1313131313131313
y0 = ax0 + b y0 = ax0 + b
y1 = ax1 + b y1 = y0 + a∆∆∆∆x
y2 = ax2 + b y2 = y1 + a∆∆∆∆x
... ...
yi = axi + b yi = yi-1 + a∆∆∆∆x
yi+1 = axi+1 + b yi+1 = yi + a∆∆∆∆x
... ...
yN = axN+1 + b y0 = yi + a∆∆∆∆x
Vaán ñeà tính giaù trò ña thöùcVaán ñeà tính giaù trò ña thöùcÑa thöùc baäc hai y = ax2 + bx + c
Caùch tính thoâng thöôøng Caùch tính caûi tieán
yi = axi2 + bxi + c y0
∆y0
yi+1
∆yi+1
=
=
=
=
ax02 + bx0 + c
2a∆∆∆∆xx0 + a∆∆∆∆x2 + b∆∆∆∆x
yi + ∆yi
∆yi + 2a∆∆∆∆x2
Trang Trang Trang Trang Trang Trang Trang Trang 1414141414141414
Vaán ñeà tính giaù trò ña thöùcVaán ñeà tính giaù trò ña thöùc
Ña thöùc baäc ba y = ax3 + bx2 + cx + d
Caùch tính caûi tieány0
∆y0
∆∆y0
yi+1
=
=
=
=
ax03 + bx0
2 + cx0 + d
3a∆∆∆∆xx02 + (3a∆∆∆∆x2 + 2b∆∆∆∆x)x0 + a∆∆∆∆x3 + b∆∆∆∆x2 + c∆∆∆∆x
6a∆∆∆∆x2x0 + 6a∆∆∆∆x3 + 2b∆∆∆∆x2
yi + ∆yi
Trang Trang Trang Trang Trang Trang Trang Trang 1515151515151515
yi+1
∆yi+1
∆∆yi+1
=
=
=
yi + ∆yi
∆yi + ∆∆yi
∆∆yi + 6a∆∆∆∆x3
Ñöôøng cong ñöôïc bieåu dieãn baèng Ñöôøng cong ñöôïc bieåu dieãn baèng Phöông trình tham soáPhöông trình tham soá
Baøi toaùnBaøi toaùnInput:Phöông trình tham soáx(t)y(t)
Mieàn tham soát ∈ [tmin, tmax]
Output:
Trang Trang Trang Trang Trang Trang Trang Trang 1717171717171717
Output:
( ) ( ) ( )
( ) ( ) ( )
[ ]π2,0
sin5cos
cos5cos
∈
=
=
t
ttty
tttx( ) ( )
( ) ( )
btz
taty
tatx
=
=
=
sin
cos
Thuaät toaùnThuaät toaùnBöôùc 1 : Chia mieàn tham soá ra N ñoaïn baèng nhau
t t t t
Mieàn tham soá
Trang Trang Trang Trang Trang Trang Trang Trang 1818181818181818
to t1 t2 tN
tmin tmax
Thuaät toaùnThuaät toaùnBöôùc 2 : Tính (x, y)
t
ti tN
Trang Trang Trang Trang Trang Trang Trang Trang 1919191919191919
to
t1
t2
Thuaät toaùnThuaät toaùnBöôùc 3 : Veõ ñöôøng gaáp khuùc ñi qua N + 1 ñieåm
(x2, y2)
(xN, yN)
Trang Trang Trang Trang Trang Trang Trang Trang 2020202020202020
(x0, y0)
(x1, y1)
(x2, y2)
Caøi ñaëtCaøi ñaët// Hàm vẽ đường cong tham số
void DrawCurve2D(CDC *pDC, TPara2D f, double tmin, double tmax)
{
double ∆t, t;
TPoint2D p;
∆t = (tmax – tmin)/N;
t = tmin;
p = f(t);
pDC->MoveTo(ConvertWorldToScreen2D(p));
Trang Trang Trang Trang Trang Trang Trang Trang 2121212121212121
pDC->MoveTo(ConvertWorldToScreen2D(p));
for(int i=1; i<=N; i++)
{
t += ∆t;
p = f(t);
pDC->LineTo(ConvertWorldToScreen2D(p));
}
}
Caøi ñaëtCaøi ñaët// Lớp phương trình tham số
class TPara2D {
virtual TPoint2D operator () (double t) = 0;
}
Trang Trang Trang Trang Trang Trang Trang Trang 2222222222222222
Vaán ñeà phaân ñoaïnVaán ñeà phaân ñoaïn
( )
( )
[ ]π∈
=
=
2,0t
tsinty
tcostx
Trang Trang Trang Trang Trang Trang Trang Trang 2323232323232323
( )
( )
[ ]π∈
=
=
8,0t
tsintty
tcosttx
ÑÖÔØNG CONG BEZIERÑÖÔØNG CONG BEZIER
Ñònh nghóa ñöôøng congÑònh nghóa ñöôøng cong
Inputn +1 ñieåm ñieàu khieån {p0, p1, ... , pn}
Output
p1
Trang Trang Trang Trang Trang Trang Trang Trang 2525252525252525
p0
pn
Ñöôøng cong Bezier baäc moätÑöôøng cong Bezier baäc moät
p(t) = (1 – t)p0 + tp1
t ∈ [0, 1]
hoaëc
p1
Trang Trang Trang Trang Trang Trang Trang Trang 2626262626262626
hoaëcx(t) = (1 – t)p0x + tp1x
y(t) = (1 – t)p0y + tp1y
t ∈ [0, 1]p0
Ñöôøng cong Bezier baäc haiÑöôøng cong Bezier baäc hai
p(t) = (1 – t)2p0 + 2(1 – t)tp1 + t2p2
t ∈ [0, 1]
hoaëc
p2
p1
Trang Trang Trang Trang Trang Trang Trang Trang 2727272727272727
hoaëcx(t) = (1 – t)2p0x + 2(1 – t)tp1x + t2p2x
y(t) = (1 – t)2p0y + 2(1 – t)tp1y + t2p2y
t ∈ [0, 1]
p0
Ñöôøng cong Bezier baäc baÑöôøng cong Bezier baäc ba
p(t) = (1 – t)3p + 3(1 – t)2tp + 3(1 – t)t2p + t3p
p0
p1
p3
p2
Trang Trang Trang Trang Trang Trang Trang Trang 2828282828282828
p(t) = (1 – t)3p0 + 3(1 – t)2tp1 + 3(1 – t)t2p2 + t3p3
t ∈ [0, 1]
hoaëcx(t) = (1 – t)3p0x + 3(1 – t)2tp1x + 3(1 – t)t2p2x + t3p3x
y(t) = (1 – t)3p0y + 3(1 – t)2tp1y + 3(1 – t)t2p2y + t3p3y
t ∈ [0, 1]
Moät soá ñöôøng cong Bezier baäc baMoät soá ñöôøng cong Bezier baäc ba
Trang Trang Trang Trang Trang Trang Trang Trang 2929292929292929
Coâng thöùc xaùc ñònh ñöôøng congCoâng thöùc xaùc ñònh ñöôøng cong
( ) ( )
[ ]( )
( )
hoaëc
t)t1(!kn!k
!ntB vôùi
1,0t
p.tBtp
khieån ñieàu ñieåm 1n bôûi taïo ñöôïc n baäc Bezier cong ñöôøng Ptts
nk
kknnk
nk
0kk
nk −
−=
∈
=
+
∑
=
−
=
=
Trang Trang Trang Trang Trang Trang Trang Trang 3030303030303030
( ) ( )
( ) ( )
[ ]1,0t
p.tBty
p.tBtx
nk
0kky
nk
nk
0kxk
nk
∈
=
=
∑
∑=
=
=
=
Tính chaát 1Tính chaát 1
Baûo toaøn qua pheùp bieán ñoåi affine.
Trang Trang Trang Trang Trang Trang Trang Trang 3131313131313131
Tính chaát 2Tính chaát 2
Caùc ñieåm ñieåu khieån taïo thaønh bao loài cuûa ñöôøng cong
Trang Trang Trang Trang Trang Trang Trang Trang 3232323232323232
Ñoä thaúng cuûa ñöôøng cong BezierÑoä thaúng cuûa ñöôøng cong Bezier
p0
p1 p2
p3
Trang Trang Trang Trang Trang Trang Trang Trang 3333333333333333
30
322110
pppppppp
f−
−+−+−=
Thuaät toaùn veõ ñöôøng cong BezierThuaät toaùn veõ ñöôøng cong Bezier
Trang Trang Trang Trang Trang Trang Trang Trang 3434343434343434
Thuaät toaùn veõ ñöôøng cong BezierThuaät toaùn veõ ñöôøng cong Bezier
�Xeùt ñöôøng cong Bezier vôùi caùc ñieåm ñieàu khieån {p0, p1, ... , pn}, noái caùc ñieåm lieân tieáp ñeå taïo thaønh ña giaùc ñieàu khieån�Chia moãi ñoaïn trong ña giaùc vôùi tæ soá t:(1-t), noái caùc ñieåm môùi tính, ta coù ñöôïc ña giaùc vôùi soá ñænh ít hôn 1�Laëp laïi böôùc treân cho ñeán khi chæ coøn moät ñieåm ñôn, chính laø ñieåm cuûa ñöôøng cong Bezier öùng vôùi tham soá t
Trang Trang Trang Trang Trang Trang Trang Trang 3535353535353535
Laëp laïi böôùc treân cho ñeán khi chæ coøn moät ñieåm ñôn, chính laø ñieåm cuûa ñöôøng cong Bezier öùng vôùi tham soá t
Ñaïo haømÑaïo haøm
p’(0) = 3(p1 – p0)p’(1) = 3(p3 – p2)p”(0) = 6(p0 – 2p1 + p2)p”(1) = 6(p1 – 2p2 + p3)
pp
Trang Trang Trang Trang Trang Trang Trang Trang 3636363636363636
p0
p3
p2p1
Tính lieân tuïcTính lieân tuïc
•Moät ñöôøng cong Bezier khoâng ñuû phöùc taïp•Gheùp nhieàu ñöôøng cong Bezier vôùi nhau•Yeâu caàu tính lieân tuïc taïi caùc ñieåm gheùp noái
•Lieân tuïc tham soáC0: lieân tuïc tham soá baäc 0, hai Bezier coù cuøng ñaàu muùtC1: C0 + coù cuøng vector tieáp tuyeán taïi ñieåm ñaàu muùt
Trang Trang Trang Trang Trang Trang Trang Trang 3737373737373737
C1: C0 + coù cuøng vector tieáp tuyeán taïi ñieåm ñaàu muùtC2: C1 + coù cuøng ñaïo haøm baäc 2 taïi ñieåm ñaàu muùt
Tính lieân tuïcTính lieân tuïc
Lieân tuïc baäc 0
Lieân tuïc baäc 1
Trang Trang Trang Trang Trang Trang Trang Trang 3838383838383838
Lieân tuïc baäc 2
Tính lieân tuïcTính lieân tuïc
•Lieân tuïc hình hoïc•G1: tieáp tuyeán cuøng höôùng nhöng khoâng caàn cuøng ñoä lôùn•G2: cuøng tieáp tuyeán vaø cuøng ñoä cong
Trang Trang Trang Trang Trang Trang Trang Trang 3939393939393939
Thuaät toaùn veõ ñeä quiThuaät toaùn veõ ñeä quip1 p2
p3
Trang Trang Trang Trang Trang Trang Trang Trang 4040404040404040
p0
p3
l0
r3
l1
l2 l3
r2
r1r0
Thuaät toaùn veõ ñeä quiThuaät toaùn veõ ñeä qui
3211
32100
101
00
4pp2p
r
8pp3p3p
r
2pp
l
pl
++=
+++=
+=
=
Trang Trang Trang Trang Trang Trang Trang Trang 4141414141414141
33
322
1
32103
2102
1
pr
2pp
r
4
8pp3p3p
l
4pp2p
l
2
=
+=
+++=
++=
Thuaät toaùn veõ ñeä quiThuaät toaùn veõ ñeä quiVeõ Bezier (p0, p1, p2, p3)
Baét ñaàuNeáu Thaúng (p0, p1, p2, p3) thìVeõ ñoaïn thaúng p0p3
Ngöôïc laïiChia {pi} thaønh {li} vaø {ri}
Veõ Bezier (l0, l1, l2, l3)
Trang Trang Trang Trang Trang Trang Trang Trang 4242424242424242
0 1 2 3
Veõ Bezier (r0, r1, r2, r3)
Keát thuùc
ÑÖÔØNG CONG HERMITEÑÖÔØNG CONG HERMITE
Ñònh nghóa ñöôøng congÑònh nghóa ñöôøng cong
Input2 ñieåm {p0, p1}2 vector {v0, v1}
Ouput
Trang Trang Trang Trang Trang Trang Trang Trang 4444444444444444
p0 p1
0v�
1v�
Coâng thöùc xaùc ñònh ñöôøng congCoâng thöùc xaùc ñònh ñöôøng cong
p0 p1
0v�
1v�
Trang Trang Trang Trang Trang Trang Trang Trang 4545454545454545
p(t) = H03(t)p0 + H13(t)p1 + H23(t)v0 + H33(t)v1p(t) = (2t3 + 3t2 + 1)p0 + (-2t3 + 3t2)p1 + (t3 – 2t2 + t)v0 + (t3 – t2)v1t ∈ [0, 1]
hoaëc
x(t) = (2t3 + 3t2 + 1)p0x + (-2t3 + 3t2)p1x + (t3 – 2t2 + t)v0x + (t3 – t2)v1xy(t) = (2t3 + 3t2 + 1)p0y + (-2t3 + 3t2)p1y + (t3 – 2t2 + t)v0y + (t3 – t2)v1yt ∈ [0, 1]
Moät soá ñöôøng cong HermiteMoät soá ñöôøng cong Hermite
Trang Trang Trang Trang Trang Trang Trang Trang 4646464646464646
Ñöôøng cong Bezier baäc ba & HermiteÑöôøng cong Bezier baäc ba & Hermite
( )( )B2B3
H1
B0
B1
H0
B3
H1
B0
H0
pp3v
pp3v
pp
pp
−=
−=
=
=
Trang Trang Trang Trang Trang Trang Trang Trang 4747474747474747
H0pB
0p
B1p
B2p
B3p H
1pH0v
H1v
Daãn nhaäpDaãn nhaäp
Bao nhieâu Bao nhieâu Bao nhieâu Bao nhieâu ñöôøng cong?ñöôøng cong?
Trang Trang Trang Trang Trang Trang Trang Trang 4848484848484848
ÑÖÔØNG CONG PHÖÙCÑÖÔØNG CONG PHÖÙC
Ñònh nghóa ñöôøng cong phöùcÑònh nghóa ñöôøng cong phöùc
Ñöôøng cong phöùc laø söï keát hôïp cuûa nhöõng ñöôøng cong cô sôû C = {C1, C2, … , Cn}
C2 C3
C
Trang Trang Trang Trang Trang Trang Trang Trang 5050505050505050
C1
C4
Yeâu caàu thieát keá ñöôøng cong phöùcYeâu caàu thieát keá ñöôøng cong phöùc
Ñoái vôùi ngöôøi thieát keá1. Deã veõ2. Lieân tuïc3. Cuïc boä
Ñoái vôùi ngöôøi laäp trình
Trang Trang Trang Trang Trang Trang Trang Trang 5151515151515151
Ñoái vôùi ngöôøi laäp trình1. Bieåu dieãn deã daøng vaø hieäu quaû2. Tính toaùn hieäu quaû
Tính lieân tuïcTính lieân tuïc
Lieân tuïc baäc 0
Lieân tuïc baäc 1
Trang Trang Trang Trang Trang Trang Trang Trang 5252525252525252
Lieân tuïc baäc 2
Phaân loaïiPhaân loaïi
1. Ñöôøng cong Splines2. Ñöôøng cong B-Splines3. Ñöôøng cong Nurbs (NonUniform Rational B-Splines)
Trang Trang Trang Trang Trang Trang Trang Trang 5353535353535353
CAÙC ÑÖÔØNG CONG SPLINESCAÙC ÑÖÔØNG CONG SPLINES
Ñònh nghóa ñöôøng cong SplinesÑònh nghóa ñöôøng cong SplinesInputn +1 ñieåm {P0, P1, ... , Pn}vaø moät soá thoâng tin khaùcOutputC = {C1, C2, …, Cn} vôùi Ci laø caùc ñöôøng cong Hermite
P
Trang Trang Trang Trang Trang Trang Trang Trang 5555555555555555
P0
P1
P2
Pn-1
Pn
C1
C2Cn
Cardinal SplinesCardinal Splines
- Tham soá tension t
Pk
Pk+1
k0
Pp
Pp
=
=
Trang Trang Trang Trang Trang Trang Trang Trang 5656565656565656
Pk-1
Pk+2
( )( )
( )( )k2k1
1k1k0
1k1
PP2t1
v
PP2t1
v
Pp
−−
=
−−
=
=
+
−+
+
AÛnh höôûng cuûa tham soá tension tAÛnh höôûng cuûa tham soá tension t
Trang Trang Trang Trang Trang Trang Trang Trang 5757575757575757
t<0 t>0
CatmullCatmull--Rom SplinesRom Splines
�Laø tröôøng hôïp ñaëc bieät cuûa Cardinal Splines vôùi t = 0
Pp
Pp
21
10
=
=
P1
P2
P4
Trang Trang Trang Trang Trang Trang Trang Trang 5858585858585858
2PP
v
2PP
v
Pp
131
020
21
−=
−=
=
P0
P1
P3
P4
KochanekKochanek--Bartels SplinesBartels Splines
�Laø tröôøng hôïp toång quaùt cuûa Cardinal Splines- Tham soá tension t- Tham soá bias b- Tham soá continuity c
k0 Pp =
Trang Trang Trang Trang Trang Trang Trang Trang 5959595959595959
( ) ( )( )( ) ( )( )( )[ ]
( ) ( )( )( ) ( )( )( )[ ]1k2kk1k1
k1k1kk0
1k1
k0
PPc1b1PPc1b1t121
v
PPc1b1PPc1b1t121
v
Pp
Pp
+++
+−
+
−−−+−++−=
−+−+−−+−=
=
=
AÛnh höôûng cuûa tham soá bias bAÛnh höôûng cuûa tham soá bias b
Trang Trang Trang Trang Trang Trang Trang Trang 6060606060606060
b<0 b>0
Natural SplinesNatural Splines
�Laø ñöôøng cong lieân tuïc C2
P1
P
v0v1
v3
Trang Trang Trang Trang Trang Trang Trang Trang 6161616161616161
P0
P2
P3
v2
Natural SplinesNatural Splines
P1
P
v0v1
v3
Trang Trang Trang Trang Trang Trang Trang Trang 6262626262626262
P0
P2
P3
v2
Natural SplinesNatural Splines
Tröôøng hôïp 1 : Bieát caùc vector v0 vaø vn
( )
( )
−
−
02
0
1
0
PP3
PP3
v
v
v
v
141
141
1
………
………
……………
Trang Trang Trang Trang Trang Trang Trang Trang 6363636363636363
( )
( )
−
−=
−−
n
2nn
13
n
1n
2
v
PP3
PP3
v
v
v
1
141
141
……
……………
………
………………
………
Natural SplinesNatural Splines
Tröôøng hôïp 2 : Ñaïo haøm baäc hai taïi hai ñieåm P0 vaø Pn ñeàu baèng 0
( )
( )
−
−
02
01
1
0
PP3
PP3
v
v
141
12
………
…………
Trang Trang Trang Trang Trang Trang Trang Trang 6464646464646464
( )
( )
( )
( )
−
−
−
−
=
−
−−
1nn
2nn
13
02
n
1n
2
1
PP3
PP3
PP3
PP3
v
v
v
v
21
141
141
141
……
…………
………
………………
………
………
Free SplinesFree Splines
�Laø ñöôøng cong lieân tuïc C0
Trang Trang Trang Trang Trang Trang Trang Trang 6565656565656565
ÑÖÔØNG CONG BÑÖÔØNG CONG B--SPLINESSPLINES
Ñònh nghóaÑònh nghóaInputn +1 ñieåm {P0, P1, ... , Pn}, Baäc k – 1, Taäp hôïp tham soá knot {t0, t1, … , tn+k}OutputC = {C1, C2, …, Cn-2} vôùi Ci laø caùc ñöôøng cong Bezier
P1 P2
Trang Trang Trang Trang Trang Trang Trang Trang 6767676767676767P0 P3 P4
P5C1
C2
C3
Coâng thöùcCoâng thöùc
( ) ( )
[ ]
[ ]t,tt neáu1
Vôùi
1,0t
PtNtpni
0ii
ki
=
=
∈
=∑
Trang Trang Trang Trang Trang Trang Trang Trang 6868686868686868
( )[ ]
( ) ( ) ( )tNtttt
tNtttt
tN
khaùc0
t,tt neáu1tN
1k1i
1iki
ki1ki
i1ki
iki
1ii1i
−
+
++
+−
−+
+
−
−+
−
−=
∈
=
Coâng thöùc BCoâng thöùc B--Splines baäc ba ñeàuSplines baäc ba ñeàu
P1 P2
P5p0
p1 p2
p3
3PP2
p
6PP4P
p
211
2100
+=
++=
Trang Trang Trang Trang Trang Trang Trang Trang 6969696969696969
P0 P3 P4
6PP4P
p
3P2P
p
3
3213
212
++=
+=
Coâng thöùc BCoâng thöùc B--Splines baäc hai ñeàuSplines baäc hai ñeàu
P1 P2
P5
p2
p1
Pp
2PP
p 010
=
−=
Trang Trang Trang Trang Trang Trang Trang Trang 7070707070707070
P0 P3 P4
p0
2PP
p
Pp
122
11
−=
=
ÑÖÔØNG CONG HÖÕU TÆÑÖÔØNG CONG HÖÕU TÆ
Ñònh nghóaÑònh nghóa
�Laø ñöôøng cong trong ñoù caùc haøm x(t) vaø y(t) laø caùc haøm ña thöùc höõu tæ
Trang Trang Trang Trang Trang Trang Trang Trang 7272727272727272
Ñöôøng troøn Ñöôøng ellipse
Ñöôøng ConicÑöôøng Conic
Daïng chuaån
yx
Hyperbola
0 b a, 1by
ax
Ellipse
22
2
2
2
2
>=+
Trang Trang Trang Trang Trang Trang Trang Trang 7373737373737373
0 a ax4y
Parabola
0 b a, 1by
ax
2
2
2
2
2
>=
>=−
Ñöôøng ConicÑöôøng Conic
Daïng tham soá
( )
( )( )∞∞−∈
+=
+
−=
,t
t1t2
bty
t1t1
atx
Ellipse
2
2
2
Trang Trang Trang Trang Trang Trang Trang Trang 7474747474747474
( )
( )( )∞∞−∈
−=
−
+=
+
,t
t1t2
bty
t1t1
atx
Hyperbolat1
2
2
2
Ñöôøng Bezier höõu tæ baäc haiÑöôøng Bezier höõu tæ baäc hai
Input p0(x0, y0) vaø troïng soá w0p1(x1, y1) vaø troïng soá w1p2(x2, y2) vaø troïng soá w2Output
p1,w1
Trang Trang Trang Trang Trang Trang Trang Trang 7575757575757575
p0,w0
p1,w1
p2,w2
Coâng thöùcCoâng thöùc
Heä toïa ñoä thuaàn nhaát
( )
( )
( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
++
+
+
=
2221
210
20
2
2
222
1
1
121
0
0
020
xtBxtBxtB
w
y
x
tB
w
y
x
tB
w
y
x
tB
tw
ty
tx
Trang Trang Trang Trang Trang Trang Trang Trang 7676767676767676
( ) ( ) ( )
( ) ( ) ( )
++
++=
2221
210
20
2221
210
20
221100
wtBwtBwtB
ytBytBytB
Coâng thöùcCoâng thöùc
Heä toïa ñoä ñeà caùc
( )
( )
( ) ( ) ( )
( ) ( ) ( )( ) ( ) ( )
( ) ( ) ( ) 2221
210
20
2221
210
20
2221
210
20
2221
210
20
xxx
wtBwtBwtBytBytBytBwtBwtBwtBxtBxtBxtB
ty
tx
++
++
++
++
=
Trang Trang Trang Trang Trang Trang Trang Trang 7777777777777777
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( ) 2221
210
20
2
22
22
1
11
21
0
00
20
2221
210
20
2
222
1
121
0
020
wtBwtBwtBy
xwtB
y
xwtB
y
xwtB
wtBwtBwtBy
xtB
y
xtB
y
xtB
++
+
+
=
++
+
+
=
Bieåu dieãn Conic baèng Bezier höõu tæBieåu dieãn Conic baèng Bezier höõu tæ
Ñöôøng Ellipse
( )
( )
( )( )
( ) ( ) ( )
( ) ( ) ( )
0tBatBatB
t1t2b
t1a
ty
tx
22
21
20
2
2
++
+
−
=
Trang Trang Trang Trang Trang Trang Trang Trang 7878787878787878
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( ) 2.tB1.tB1.tBb
0.2.tB
b
a.1.tB
0
a.1.tB
2tBtBtBb2tBbtB0tB
22
21
20
21
21
20
22
21
20
22
21
20
210
++
+
+
=
++
++
=
ÑÖÔØNG CONG NURBSÑÖÔØNG CONG NURBS
Ñònh nghóaÑònh nghóa
�Laø ñöôøng cong phöùc C = {C1, C2, …, Cn-2} vôùi Ci laø caùc ñöôøng cong Bezier höõu tæ
Trang Trang Trang Trang Trang Trang Trang Trang 8080808080808080
Recommended