Top Banner
ÑOÀ HOÏA 2D ÑOÀ HOÏA 2D ÑÖÔØNG CONG ÑÖÔØNG CONG Giaûng vieân : Buøi Tieán Leân
80

chuong_3c [Compatibility Mode].pdf

Jan 16, 2016

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: chuong_3c [Compatibility Mode].pdf

ÑOÀ HOÏA 2DÑOÀ HOÏA 2D

ÑÖÔØNG CONGÑÖÔØNG CONG

Giaûng vieân : Buøi Tieán Leân

Page 2: chuong_3c [Compatibility Mode].pdf

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)

Page 3: chuong_3c [Compatibility Mode].pdf

Ñöôøng cong ñöôïc bieåu dieãn baèng Ñöôøng cong ñöôïc bieåu dieãn baèng haøm soáhaøm soá

Page 4: chuong_3c [Compatibility Mode].pdf

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)

Page 5: chuong_3c [Compatibility Mode].pdf

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

Page 6: chuong_3c [Compatibility Mode].pdf

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

Page 7: chuong_3c [Compatibility Mode].pdf

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

Page 8: chuong_3c [Compatibility Mode].pdf

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));

}

}

Page 9: chuong_3c [Compatibility Mode].pdf

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

Page 10: chuong_3c [Compatibility Mode].pdf

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

Page 11: chuong_3c [Compatibility Mode].pdf

Ñ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 −∈

Page 12: chuong_3c [Compatibility Mode].pdf

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?

Page 13: chuong_3c [Compatibility Mode].pdf

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

Page 14: chuong_3c [Compatibility Mode].pdf

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

Page 15: chuong_3c [Compatibility Mode].pdf

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

Page 16: chuong_3c [Compatibility Mode].pdf

Ñöôø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á

Page 17: chuong_3c [Compatibility Mode].pdf

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

Page 18: chuong_3c [Compatibility Mode].pdf

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

Page 19: chuong_3c [Compatibility Mode].pdf

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

Page 20: chuong_3c [Compatibility Mode].pdf

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)

Page 21: chuong_3c [Compatibility Mode].pdf

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));

}

}

Page 22: chuong_3c [Compatibility Mode].pdf

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

Page 23: chuong_3c [Compatibility Mode].pdf

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

Page 24: chuong_3c [Compatibility Mode].pdf

ÑÖÔØNG CONG BEZIERÑÖÔØNG CONG BEZIER

Page 25: chuong_3c [Compatibility Mode].pdf

Ñò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

Page 26: chuong_3c [Compatibility Mode].pdf

Ñöôø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

Page 27: chuong_3c [Compatibility Mode].pdf

Ñöôø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

Page 28: chuong_3c [Compatibility Mode].pdf

Ñöôø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]

Page 29: chuong_3c [Compatibility Mode].pdf

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

Page 30: chuong_3c [Compatibility Mode].pdf

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

=

=

∑=

=

=

=

Page 31: chuong_3c [Compatibility Mode].pdf

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

Page 32: chuong_3c [Compatibility Mode].pdf

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

Page 33: chuong_3c [Compatibility Mode].pdf

Ñ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−

−+−+−=

Page 34: chuong_3c [Compatibility Mode].pdf

Thuaät toaùn veõ ñöôøng cong BezierThuaät toaùn veõ ñöôøng cong Bezier

Trang Trang Trang Trang Trang Trang Trang Trang 3434343434343434

Page 35: chuong_3c [Compatibility Mode].pdf

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

Page 36: chuong_3c [Compatibility Mode].pdf

Ñ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

Page 37: chuong_3c [Compatibility Mode].pdf

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

Page 38: chuong_3c [Compatibility Mode].pdf

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

Page 39: chuong_3c [Compatibility Mode].pdf

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

Page 40: chuong_3c [Compatibility Mode].pdf

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

Page 41: chuong_3c [Compatibility Mode].pdf

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

=

+=

+++=

++=

Page 42: chuong_3c [Compatibility Mode].pdf

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

Page 43: chuong_3c [Compatibility Mode].pdf

ÑÖÔØNG CONG HERMITEÑÖÔØNG CONG HERMITE

Page 44: chuong_3c [Compatibility Mode].pdf

Ñò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�

Page 45: chuong_3c [Compatibility Mode].pdf

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]

Page 46: chuong_3c [Compatibility Mode].pdf

Moät soá ñöôøng cong HermiteMoät soá ñöôøng cong Hermite

Trang Trang Trang Trang Trang Trang Trang Trang 4646464646464646

Page 47: chuong_3c [Compatibility Mode].pdf

Ñöôø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

Page 48: chuong_3c [Compatibility Mode].pdf

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

Page 49: chuong_3c [Compatibility Mode].pdf

ÑÖÔØNG CONG PHÖÙCÑÖÔØNG CONG PHÖÙC

Page 50: chuong_3c [Compatibility Mode].pdf

Ñò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

Page 51: chuong_3c [Compatibility Mode].pdf

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û

Page 52: chuong_3c [Compatibility Mode].pdf

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

Page 53: chuong_3c [Compatibility Mode].pdf

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

Page 54: chuong_3c [Compatibility Mode].pdf

CAÙC ÑÖÔØNG CONG SPLINESCAÙC ÑÖÔØNG CONG SPLINES

Page 55: chuong_3c [Compatibility Mode].pdf

Ñò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

Page 56: chuong_3c [Compatibility Mode].pdf

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

−−

=

−−

=

=

+

−+

+

Page 57: chuong_3c [Compatibility Mode].pdf

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

Page 58: chuong_3c [Compatibility Mode].pdf

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

Page 59: chuong_3c [Compatibility Mode].pdf

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

+++

+−

+

−−−+−++−=

−+−+−−+−=

=

=

Page 60: chuong_3c [Compatibility Mode].pdf

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

Page 61: chuong_3c [Compatibility Mode].pdf

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

Page 62: chuong_3c [Compatibility Mode].pdf

Natural SplinesNatural Splines

P1

P

v0v1

v3

Trang Trang Trang Trang Trang Trang Trang Trang 6262626262626262

P0

P2

P3

v2

Page 63: chuong_3c [Compatibility Mode].pdf

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

……

……………

………

………………

………

Page 64: chuong_3c [Compatibility Mode].pdf

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

……

…………

………

………………

………

………

Page 65: chuong_3c [Compatibility Mode].pdf

Free SplinesFree Splines

�Laø ñöôøng cong lieân tuïc C0

Trang Trang Trang Trang Trang Trang Trang Trang 6565656565656565

Page 66: chuong_3c [Compatibility Mode].pdf

ÑÖÔØNG CONG BÑÖÔØNG CONG B--SPLINESSPLINES

Page 67: chuong_3c [Compatibility Mode].pdf

Ñò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

Page 68: chuong_3c [Compatibility Mode].pdf

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

+

++

+−

−+

+

−+

−=

=

Page 69: chuong_3c [Compatibility Mode].pdf

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

++=

+=

Page 70: chuong_3c [Compatibility Mode].pdf

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

−=

=

Page 71: chuong_3c [Compatibility Mode].pdf

ÑÖÔØNG CONG HÖÕU TÆÑÖÔØNG CONG HÖÕU TÆ

Page 72: chuong_3c [Compatibility Mode].pdf

Ñò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

Page 73: chuong_3c [Compatibility Mode].pdf

Ñöôø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

>=

>=−

Page 74: chuong_3c [Compatibility Mode].pdf

Ñöôø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

Page 75: chuong_3c [Compatibility Mode].pdf

Ñöôø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

Page 76: chuong_3c [Compatibility Mode].pdf

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

Page 77: chuong_3c [Compatibility Mode].pdf

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

++

+

+

=

++

+

+

=

Page 78: chuong_3c [Compatibility Mode].pdf

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

++

+

+

=

++

++

=

Page 79: chuong_3c [Compatibility Mode].pdf

ÑÖÔØNG CONG NURBSÑÖÔØNG CONG NURBS

Page 80: chuong_3c [Compatibility Mode].pdf

Ñò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