Download as pdf or txt
Download as pdf or txt
You are on page 1of 102

ÑOÀ HOÏA 2D

ÑÖÔØNG CONG
Phaâ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 2
Ñöôøng cong ñöôïc bieåu dieãn baèng
haøm soá
Baøi toaùn
Input
Haøm soá y = f(x)
Mieàn ñoái soá [xmin, xmax]
Output
Ñoà thò haøm soá

y=f(x)

xmin xmax Trang 4


Thuaät toaùn
Böôùc 1 : Chia mieàn ñoái soá ra N
ñoaïn baèng nhau

x0 x1 x2 xN-1xN
xmin xmax

Trang 5
Thuaät toaùn
Böôùc 2 : Tính y

yN

y1 y
2

y0 yN-1

x0 x1 x2 xN-1xN
xmin xmax

Trang 6
Thuaät toaùn
Böôùc 3 : Keû ñöôøng gaáp khuùc ñi
qua N + 1 ñieåm.
yN

y1 y
2

y0 yN-1

x0 x1 x2 xN-1xN
xmin xmax

Trang 7
Caø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++)
{
x += x;
y = f(x);
pDC->LineTo(ConvertWorldToScreen2D(x, y));
}
}

Trang 8
Caøi ñaët
// Lớp phương trình hàm
class TFunc2D {
virtual double operator () (double x) = 0;
};

Class TFunc2D

+operator() : double

Class TSin2D Class TCos2D Class ...

+operator() : double +operator() : double +operator() : double

Trang 9
Vaán ñeà phaân ñoaïn
Soá phaân ñoaïn N laø bao nhieâu ?

ñoä phaân giaûi coät

Trang 10
Ñoà thò ña thöùc baäc ba
Cho
y = ax3 + bx2 + cx + d
x  [xmin, xmax]

y  0.1x3  0.2x 2  0.2x  3


x   4,4

Trang 11
Vaán ñeà tính giaù trò ña thöùc
1. Caùch tính thoâng thöôøng
y = a*x*x*x + b*x*x + c*x + d // 6 pheùp nhaân vaø 3 pheùp coäng

2. Caùch tính Horner


y = ((a*x + b)*x + c)*x + d // 3 pheùp nhaân vaø 3 pheùp coäng

3. Phöông phaùp Newton

Trang 12
Phöông phaùp Newton
Ña thöùc baäc nhaát y = ax + b

böôùc 1
y0 = ax0 + b
böôùc 2
yi+1 = yi + ax

Trang 13
Phöông phaùp Newton
Ña thöùc baäc hai y = ax2 + bx + c

böôùc 1
y0 = ax02 + bx0 + c
1y0 = 2axx0 + ax2 + bx
böôùc 2
yi+1 = yi + yi
1yi+1 = yi + 2ax2

Trang 14
Phöông phaùp Newton
Ña thöùc baäc ba y = ax3 + bx2 + cx + d

böôùc 1
y0 = ax03 + bx02 + cx0 + d
1y0 = 3axx02 + (3ax2 + 2bx)x0 + ax3 + bx2 + cx
2y0 = 6ax2x0 + 6ax3 + 2bx2
böôùc 2
yi+1 = yi + 1yi
1yi+1 = 1yi + 2yi
2yi+1 = 2yi + 6ax3

Trang 15
Ví duï
Ña thöùc baäc ba y = f(x) = x3 + 2x2 + 3x + 1
y5

y4

y3
y2
y1
y0
x
x0 x1 x2 x3 x4 x5
x 0 1 2 3 4 5
y 1 7 23 55 109 191
1y0 6 16 32 54 82
2y0 10 16 22 28
Trang 16
Ña thöùc Lagrange
Input : n + 1 ñieåm (x0, y0) (x1, y1), ... , (xn, yn) vôùi xi < xi+1
Output : Ña thöùc baäc n coù ñoà thò ñi qua n + 1 ñieåm

(x0, y0)
(x1, y1)
(xn, yn)
(xn-1, yn-1)

Trang 17
Coâng thöùc
Phöông trình ña thöùc

i n  x  x  j

y  f x      
j 0,...,n \ i
y
i 0  x  x  i j
i

  
j 0,...,n \ i

y = f(x)

Trang 18
Ña thöùc Lagrange baäc 1

(x1, y1)
x  x1 x  x0
y  fx   y0  y1
x0  x1 x1  x0
(x0, y0)

Trang 19
Ña thöùc Lagrange baäc 2

x  x1x  x 2  y 
y=f(x)=
x0  x1x0  x 2  0
x  x0 x  x 2  y 
(x0, y0) x1  x0 x1  x 2  1
(x2, y2)
x  x0 x  x1 y
(x1, y1) x 2  x0 x 2  x1 2

Trang 20
Ña thöùc Lagrange baäc 3

x  x1x  x 2 x  x3  y 
y=f(x)=
(x1, y1) x0  x1x0  x 2 x0  x3  0
(x0, y0) x  x0 x  x 2 x  x3  y 
(x3, y3) x1  x0 x1  x 2 x1  x3  1
x  x0 x  x1x  x3  y 
(x2, y2)
x 2  x0 x 2  x1x 2  x3  2
x  x0 x  x1x  x 2  y
x3  x0 x3  x1x3  x 2  3

Trang 21
Ñöôøng cong ñöôïc bieåu dieãn baèng
Phöông trình tham soá
Baøi toaùn
Input:
Phöông trình tham soá
x(t)
y(t)
Mieàn tham soá
t  [tmin, tmax]
Output:

xt   cos5t  cost 


yt   cos5t  sint 
t  0,2

Trang 23
Thuaät toaùn
Böôùc 1 : Chia mieàn tham soá ra
N ñoaïn baèng nhau

Mieàn tham soá

to t1 t2 tN

tmin tmax

Trang 24
Thuaät toaùn
Böôùc 2 : Tính (x, y)

ti tN

t2

t1

to

Trang 25
Thuaät toaùn
Böôùc 3 : Veõ ñöôøng gaáp khuùc ñi
qua N + 1 ñieåm

(xN, yN)

(x2, y2)

(x1, y1)

(x0, y0)

Trang 26
Caø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));
for(int i=1; i<=N; i++)
{
t += t;
p = f(t);
pDC->LineTo(ConvertWorldToScreen2D(p));
}
}

Trang 27
Caøi ñaët
// Lớp phương trình tham số
class TPara2D {
virtual TPoint2D operator () (double t) = 0;
}

Class TPara2D

+operator() : TPoint2D

Class TCircle2D Class TSpiral2D Class ...

+operator():TPoint2D +operator():TPoint2D +operator():TPoint2D

Trang 28
Moät soá ñöôøng cong tham soá

xt   cos t
1
yt   sin t
t  0,2

xt   t cos t
yt   t sin t
t  0,8

Trang 29
ÑÖÔØNG CONG CAD
ÑÖÔØNG CONG BEZIER
Ñònh nghóa ñöôøng cong
Input
n +1 ñieåm ñieàu khieån {p0, p1, ... , pn}
Output

p1

p0
pn-1

pn Trang 32
Coâng thöùc xaùc ñònh ñöôøng cong
Ptts ñöôøng cong Bezier baäc n ñöôïc taïo bôûi n  1ñieåm ñieàu khieån
k n
pt    Bnk t .pk n!
vôùi Bnk t   (1 t)nk t k
k 0
k! n  k !
t  0,1
hoaëc
k n
xt    Bnk t .pk x
k 0
k n
yt    Bnk t .pky
k 0

t  0,1

Trang 33
Ñöôøng cong & tham soá

p1

p0p
pn-1

pn
0 1

t
Trang 34
Tính chaát 1
Baûo toaøn qua pheùp bieán ñoåi affine.

Trang 35
Tính chaát 2
Caùc ñieåm ñieàu khieån taïo thaønh bao loài cuûa ñöôøng cong

Trang 36
Tính chaát 3
Coù tính ñoái xöùng

p1 pn-1

p0 pn
pn-1 p1

pn p0

Trang 37
Ñöôøng cong Bezier baäc moät

p1
p(t) = (1 – t)p0 + tp1
t  [0, 1]
hoaëc
x(t) = (1 – t)p0x + tp1x
y(t) = (1 – t)p0y + tp1y
t  [0, 1]
p0

Trang 38
Ñöôøng cong Bezier baäc hai

p1
p2
p(t) = (1 – t)2p0 + 2(1 – t)tp1 + t2p2
t  [0, 1]
hoaëc
x(t) = (1 – t)2p0x + 2(1 – t)tp1x + t2p2x
y(t) = (1 – t)2p0y + 2(1 – t)tp1y + t2p2y
t  [0, 1]
p0

Trang 39
Ñöôøng cong Bezier baäc ba
p1 p2

p0 p3

p(t) = (1 – t)3p0 + 3(1 – t)2tp1 + 3(1 – t)t2p2 + t3p3


t  [0, 1]
hoaëc
x(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]

Trang 40
Ñ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)

p1 p2

p3

p0

Trang 41
Moät soá ñöôøng cong Bezier baäc ba

Trang 42
Ñoä thaúng cuûa ñöôøng cong Bezier

p1 p2

p0 p3

p0  p1  p1  p2  p2  p3
f
p0  p3

Trang 43
Thuaät toaùn veõ ñeä qui
Veõ Bezier (p0, p1, p2, p3)
Baét ñaàu
Neáu Thaúng (p0, p1, p2, p3) thì
Veõ ñoaïn thaúng p0p3
Ngöôïc laïi
Chia {pi} thaønh {li} vaø {ri}
Veõ Bezier (l0, l1, l2, l3)
Veõ Bezier (r0, r1, r2, r3)
Keát thuùc

Trang 44
Thuaät toaùn veõ ñeä qui
p1 p2

p3

p0
l3 r0 r1
l2
r2
l1

r3

l0 Trang 45
Thuaät toaùn veõ ñeä qui

p0  3p1  3p2  p3
l0  p0 r0 
8
p0  p1 p  2p2  p3
l1  r1  1
2 4
p0  2p1  p2 p2  p3
l2  r2 
4 2
p0  3p1  3p2  p3
l3  r3  p3
8

Trang 46
ÑÖÔØNG CONG HERMITE
Ñònh nghóa ñöôøng cong
Input
2 ñieåm {p0, p1}
2 vector {v0, v1}
Ouput

 
v0 v1

p0 p1

Trang 48
Coâng thöùc xaùc ñònh ñöôøng cong

 
v0 v1

p0 p1

p(t) = H03(t)p0 + H13(t)p1 + H23(t)v0 + H33(t)v1


p(t) = (2t3 + 3t2 + 1)p0 + (-2t3 + 3t2)p1 + (t3 – 2t2 + t)v0 + (t3 – t2)v1
t  [0, 1]
hoaëc
x(t) = (2t3 + 3t2 + 1)p0x + (-2t3 + 3t2)p1x + (t3 – 2t2 + t)v0x + (t3 – t2)v1x
y(t) = (2t3 + 3t2 + 1)p0y + (-2t3 + 3t2)p1y + (t3 – 2t2 + t)v0y + (t3 – t2)v1y
t  [0, 1]

Trang 49
AÛnh höôûng cuûa höôùng vector tieáp tuyeán

Trang 50
AÛnh höôûng cuûa ñoä daøi vector tieáp tuyeán

Trang 51
Chuyeån ñoåi giöõa Bezier & Hermite

pH0  pB0 pB0  pH0


H
p1H  pB3 v
p1B  0  pH0
v H0  3p1B  pB0  3
H

v 1H  3pB3  pB2 
v
pB2  1  p1H
3
pB3  p1H
p1B pB2

vH0
p
B
3 p1H
pH0 v1H
pB0

Trang 52
Daãn nhaäp

Bao nhieâu
ñöôøng cong?

Trang 53
ÑÖÔØ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 = {C0, C1, … , Cn-1}
C1

Cn-1

C0
Trang 55
Yeâ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ïc
3. Cuïc boä

Ñoái vôùi ngöôøi laäp trình


1. Bieåu dieãn deã daøng vaø hieäu quaû
2. Tính toaùn hieäu quaû

Trang 56
Tính lieân tuïc
Lieân tuïc baäc 0
Ci Ci+1

Lieân tuïc baäc 1


Ci Ci+1

Lieân tuïc baäc 2


Ci Ci+1

Trang 57
Tính cuïc boä
Thay ñoåi caùc tham soá chæ aûnh höôûng ñeán moät phaàn cuûa
ñöôøng cong

C1 C2
C0
C3 C5
C4

C0
C1 C2 C3 C5
C4

Trang 58
Phaân loaïi
1. Ñöôøng cong Splines
2. Ñöôøng cong B-Splines
3. Ñöôøng cong Nurbs (NonUniform Rational B-Splines)
4. Ñöôøng cong Subdivision

Trang 59
CAÙC ÑÖÔØNG CONG SPLINES
Ñònh nghóa ñöôøng cong Splines
Input
n +1 ñieåm {P0, P1, ... , Pn}
vaø moät soá tham soá khaùc
Output
C = {C0, C1, …, Cn-1} vôùi Ci laø caùc ñöôøng cong Hermite

P1
Pn-1
C0
Cn-1
C1
P0
Pn
P2

C
Trang 61
Free Splines
Laø ñöôøng cong lieân tuïc C0

Trang 62
Cardinal Splines
 Laø ñöôøng cong lieân tuïc C1
- Tham soá tension t

vdau Coâng thöùc cho Ck


Ck
Pk
pdau
pdau  Pk
Pk+1
pcuoi vcuoi
pcuoi  Pk 1

vdau 
1 t  P  Pk 1 
k 1
Pk-1 2
Pk+2
vcuoi 
1 t  P  P 
k2 k
2

Trang 63
AÛnh höôûng cuûa tham soá tension t

Ci Ci+1 Ci Ci+1

t<0 t>0

Trang 64
Catmull-Rom Splines
Laø tröôøng hôïp ñaëc bieät cuûa Cardinal Splines vôùi t = 0

Coâng thöùc cho C1

C1 pdau  P1
P2
P1 P4
pcuoi  P2
P2  P0
vdau 
2
P3  P1
P3 vcuoi 
2
P0

Trang 65
Kochanek-Bartels Splines
Laø tröôøng hôïp toång quaùt cuûa Cardinal Splines
- Tham soá tension t (ñoä caêng)
- Tham soá bias b (ñoä leäch)
- Tham soá continuity c (lieân tuïc)
Coâng thöùc cho Ck
pdau  Pk

pcuoi  Pk 1
1
vdau  1 t 1 b1 c Pk  Pk 1   1 b1 c Pk 1  Pk 
2
1
vcuoi  1 t 1 b1 c Pk 1  Pk   1 b1 c Pk  2  Pk 1 
2
Trang 66
AÛnh höôûng cuûa tham soá bias b

Ci Ci+1 Ci Ci+1

b<0 b>0

Trang 67
Natural Splines
Laø ñöôøng cong lieân tuïc C2
Coâng thöùc cho Ck
pdau  Pk
pcuoi  Pk 1 P1
C0
vdau  vk v3
v0
vcuoi  vk 1 v1
P3
C1
P0
C2

P2
v2

Trang 68
Natural Splines
Tröôøng hôïp 1 :
Bieát caùc vector v0 vaø vn

1      v0   v0 
    
1 4 1    v1   3P2  P0  
 1 4 1   v2   3P3  P1  
   
        
   1 4 1  vn1   3Pn  Pn 2 
    
     1  vn   vn 

Trang 69
Natural 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

2 1     v0   3P1  P0  
    
1 4 1    v1   3P2  P0  
 1 4 1   v2   3P3  P1  
   
        
   1 4 1  vn1   3Pn  Pn 2 
    
    1 2  vn   3Pn  Pn1  

Trang 70
ÑÖÔØNG CONG B-SPLINES
Ñònh nghóa
Input
- n +1 ñieåm {P0, P1, ... , Pn}
- baäc k
- vector knot t = {t0, t1, … , tn+k-1} mieàn tham soá vôùi ti  ti+1
Output
C = {C0, C1, …, Cn-k} vôùi Ci laø caùc ñöôøng cong cô sôû

P1 P2

C0 P5

C1

C2

P0 P3 P4 Trang 72
Coâng thöùc toång quaùt
Phöông trình
in
pt    Nki t Pi
i 0
in
xt    Nki t Pix
i 0
in
yt    Nki t Piy
i 0

Vôùi
1 neáu t  ti , ti1
N t   
0
i
0 neáu t khaùc
t  ti tik  t k 1
Ni t  
k
Ni t  
k 1
Ni1 t 
t ik 1  ti tik  ti1
Trang 73
Ñöôøng cong cô sôû
Ñöôøng cong cô sôû Ci
 coù mieàn tham soá [ti+k-1, ti+k]
 coù k+1 ñieåm ñieàu khieån {Pi, Pi+1, ... , Pi+k}
 phuï thuoäc vaøo 2k knot {ti, ti+1, ... , ti+2k-1}

Trang 74
Ñöôøng cong

Pn
P1

Cn-k
C0

P2 Pn-1
P0

t0 t1 ... tk-1 tk ... tn-1 tn ... tn+k-2 tn+k-1


Trang 75
Phaân loaïi
Döïa treân vector knot t
Loaïi 1 : ñeàu
t = [0, 1, 2, 3, 4, 5, 6]
t = [0.1, 0.2, 0.4, 0.6, 0.8, 1.0]

Loaïi 2 : laëp
t = [0, 0, 0, 0, 1, 1, 1, 1]

Loaïi 3 : Coøn loaïi

Trang 76
B-Splines baäc hai ñeàu

p1P1 P2 Coâng thöùc cho C0


p2 P1  P0
p0 
C0 P5 2
p1  P1
p0
P2  P1
p2 
2
P0 P3 P4

Trang 77
Coâng thöùc
Coâng thöùc cho Ck
Pk  Pk 1
p0 
2
p1  Pk 1
Pk 1  Pk  2
p2 
2

Trang 78
B-Splines baäc ba ñeàu

Coâng thöùc cho C0


P1 p1 p2 P2 P0  4P1  P2
p0 
C0 P5 6
p0 p3 2P1  P2
p1 
3
P1  2P2
p2 
3
P1  4P2  P3
p3 
6
P0 P3 P4

Trang 79
Coâng thöùc
Coâng thöùc cho Ck
Pk  4Pk 1  Pk  2
p0 
6
2Pk 1  Pk  2
p1 
3
Pk 1  2Pk  2
p2 
3
Pk 1  4Pk  2  Pk  3
p3 
6

Trang 80
BEZIER HÖÕU TÆ
Ñònh nghóa ñöôøng cong höõu tæ
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æ

Ñöôøng troøn Ñöôøng ellipse

Trang 82
Phöông trình ñöôøng cong Conic
Daïng chuaån
Ellipse
x2 y2
 2  1 a, b  0
a 2
b
Hyperbola
x2 y2
 2  1 a, b  0
a 2
b
Parabola
y 2  4ax a0

Trang 83
Phöông trình ñöôøng cong Conic
Daïng tham soá
Ellipse
1 t 2
xt   a
1 t 2 t   ,  
2t
yt   b
1 t 2
Hyperbola
1 t 2
xt   a
1 t 2 t   ,  
2t
yt   b
1 t 2

Trang 84
Ñöôøng Bezier höõu tæ baäc hai
Input
p0(x0, y0) vaø troïng soá w0
p1(x1, y1) vaø troïng soá w1
p2(x2, y2) vaø troïng soá w2
Output
p1,w1

p0,w0

p2,w2 Trang 85
Coâng thöùc
Heä toïa ñoä thuaàn nhaát (xH, yH, wH)
 xH t    xH0   x1H   xH2 
 H   H  H  H
 y t    B0 t  y 0   B1 t  y1   B2 t  y 2 
2 2 2

 wH t   wH   wH   wH 
   0  1  2
 xH t    B02 t xH0  B12 t x1H  B22 t xH2 
 H   2 
 y t     B0 t y 0  B1 t y1  B2 t y 2 
H 2 H 2 H

 wH t   B2 t wH  B2 t wH  B2 t wH 


   0 0 1 1 2 2

Trang 86
Coâng thöùc
Heä toïa ñoä ñeà caùc (xD, yD)
 B02 t xH0  B12 t x1H  B22 t xH2 
 2 
 x t   B0 t w0  B1 t w1  B2 t w2 
D 2 2
 D  
 y t   B 2
0  t y H
0  B 2
1  t y1
H
 B2
2 t  y H
2

 2 H
B
 0  t  w H
0  B2
1 t  w H
1  B 2
2  t w 2 

 x H
  x H
  x H
2
B0 t  H   B1 t  H   B2 t  H 
2
 0
 2
 1
 2

 x t 
D
 y0   y1   y2 
 D  
 y t   B 0
2
t w H
0  B1
2
t w H
1  B2
2  t w H
2

 x D
  x D
  x D
2 
B0 t w0  D   B1 t w1 D   B2 t w2  D 
2 0 2 1 2

 x t 
D
 y0   y1   y2 
 D  
 y t   B 2
0 t w H
0  B2
1 t w H
1  B2
2 t wH
2

Trang 87
Ví duï bieåu dieãn ellipse
Ñöôøng Ellipse
 a1 t 2 
 
 xt   b2t  
  
 yt   1  t 2

 B02 t a  B12 t a  B22 t 0 


 2 
 xt   B0 t 0  B1 t b  B2 t 2b 
2 2
  
 yt   B 2
0 t   B 2
1 t   B 2 t 2
2

a a  0
B0 t .1.   B1 t .1.   B1 t .2. 
2 2 2

 xt   0  b  b
  
 yt   B 2
0 t . 1  B 2
1 t . 1  B2 t .2
2

Trang 88
Ví duï bieåu dieãn ellipse

p2(0, b), w2=2 p1(a, b), w1=1

pp0(a, 0), w0=1


0 1

t
Trang 89
Bieåu dieãn chuaån cho ñöôøng conic
Trong bieåu dieãn chuaån w0 = 1, w1 = w, w2 = 1
 w = 0 : ñöôøng thaúng
 0 < w < 1 : ñöôøng ellipse
 w = 1 : ñöôøng parabol
 w > 1 : ñöôøng hyperbol
p1,w

A MA w MA
 hoaëc w
Mp1 1 w Ap1
p0
M

p2 Trang 90
Bieåu dieãn chuaån cho ñöôøng conic

p1,w

w=2
Hyperbol
w=1
Parabol
w=0.6 Ellipse
Line

w=0
p0 p2
Trang 91
ÑÖÔØNG CONG NURBS
Ñònh nghóa
Input
- n +1 ñieåm cuøng troïng soá {(P0, w0), (P1, w1), ... , (Pn, wn)}
- baäc k
- vector knot t = {t0, t1, … , tn+k-1} mieàn tham soá
Output
C = {C0, C1, …, Cn-k} vôùi Ci laø caùc ñöôøng cong cô sôû

Trang 93
Coâng thöùc toång quaùt
Coâng thöùc trong heä toïa ñoä thuaàn nhaát (x, y, w)
in
xt    Nki t Pi x
i 0
in
yt    Nki t Pi y
i 0
in
wt    Nki t Pi w
i 0

Vôùi
1 neáu t  t i , ti1
N t   
0
i
0 neáu t khaùc
t  ti t ik  t k 1
Ni t  
k
Ni t  
k 1
Ni1 t 
t ik 1  ti t ik  t i1
Trang 94
Ñöôøng cong cô sôû
Ñöôøng cong cô sôû Ci
 coù mieàn tham soá [ti+k-1, ti+k]
 coù k+1 ñieåm ñieàu khieån {Pi, Pi+1, ... , Pi+k}
 phuï thuoäc vaøo 2k knot {ti, ti+1, ... , ti+2k-1}

Trang 95
Ñöôøng cong

Pn, wn
P1, w1

Cn-k
C0

P2, w2 Pn-1, wn-1


P0, w0

t0 t1 ... tk-1 tk ... tn-1 tn ... tn+k-2 tn+k-1


Trang 96
AÛnh höôûng cuûa caùc tham soá
Hình daùng cuûa ñöôøng cong seõ bò aûnh höôûng bôûi
 Caùc ñieåm ñieàu khieån Pi
 Caùc troïng soá wi
 Vector knot tj

Pi, wi

tj

Trang 97
ÑÖÔØNG CONG SUBDIVISION
Baøi toaùn
Input : taäp n ñieåm P{P0, P1, ... , Pn-1}
Output : ñöôøng cong C
YÙ töôûng
Laëp laïi quaù trình tinh cheá caùc ñieåm ñieàu khieån P
P  P(1)  P(2)  ...
lim P(n) = C
n

Trang 99
Thuaät toaùn Chaikin
Laëp
Böôùc 1 splitting
Theâm caùc ñænh laø trung ñieåm cuûa caùc caïnh
Böôùc 2 averaging
Laáy ñænh trung bình cho caùc ñænh gaàn nhau

Ngöôøi ta ñaõ chöùng minh caùc ñieåm ñieàu khieån hoäi tuï veà ñöôøng cong
bspline baäc 3 ñeàu C

Trang 100
Thuaät toaùn

Trang 101
Tom tat
Qua trinh tao duong cong subdivision

Trang 102

You might also like