CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
1
1
hình bmt Surface
Các phương pháp xây dng
Khái nim
Constructive surface
Bmttng hp
Bmt tam giác
Le Tan Hung
www.dohoavietnam.com
2
I. Cáckháinimcơbn
zMt cong-Surface
quỹđochuynđộng ca1 đừơng cong tonên
zBiudin tham biếnchomt cong
Davàovicxâydng tobmt toán hctrênnhng đimdliu
Datrênvicxâydng nên bmtphthuc vào biếns khnăng
thay đimtcáchtrcdin thông qua các tương tác đho.
zBiudin theo mnh
Biudinmiếng tgiác - quadrilatera Patches
Biudinmiếng tam giác-Triangular Patches
x=x(u,v,w) u,v,w E [0, 1]
y=y(u,v,w) u + v + w = 1
z=z(u,v,w)
Q(u,v,w) = Q[ x=x(u,v,w) y=y(u,v,w) z=z(u,v,w) ]
3
Ưuđimdùngmtlưới
Cho phépphântích smvàddàng cácđctính ca
bmt, đưng cong cabmtvàtính chtvtlýca
bmt.
Cho phépxácđnh dintích, xácđnh vùng cabmt
hay cácmômentcamt.
Vikhnăng màubmttrongthctếcho phép
vickimtrathiếtkếđơngin.
Toracác thông tin cnthiếtchovicsnxutvàto
ra bmtnhưcode điukhinsđưcddàng thun
tinhơnnhiuso vicácphương phápthiếtkếc
đin
4
Biudinmnh
tgiác
zPhương trình
x=x(u,v)
y=y(u,v) u,v E [ 0, 1]
z=z(u,v)
Q(u,v) = Q[ x=x(u,v) y=y(u,v) z=z(u,v) ]
Thành phn
u,v các tham biến
Các đim Q(0,0) Q(0,1), Q(1,0), Q(1,1) là cncamnh
Các đường cong Q(1,v), Q(0,v), Q(u,0), Q(u,1) là các biên camnh
Đạohàmriêngtiđim Q(u,v) xác định vector tiếptuyếntheohướng u, v
5
Kếtnimnh tgiác
zThcthhình hcbiudin thông
qua các mnh cùng dng
zCác mnh thnivi nhau theo
các hướng u,v khi 2 mnh cùng
hướng đó
zNếumiđimtrênbiênca2 mnh =
nhau, hay 2 biên = nhau. 2 mnh liên
tcbcCo
zNếu 2 biên = nhau đạo hàm bng
nhau trên cùng 1 hướng thi 2 mnh
gilàkếtnibcC1
6
H ta độ
Barycentric Coordinates ?
Tpc đim P1,P2 ... Pn
Tp các t hp ca các đim đó
k1P1 + k2P2 + k3P3 ... + knPn
Vi
k1 + k2 + k3 + ... + kn =1
các đim to thành không gian affine vi các gias tr to
độ nates
k1,k2,k3,..kn
được gi là h to độ barycentric.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
2
7
Tam giác
Triangular
Trong tam giác các đimcódng P1, P2, P3
Hs: k1, k2, k3 E [ 0, 1]
k1 + k2 + k3 = 1
P = k1P1 + k2P2+ k3P3
NếuHski > 1 hoc<0 đimP snm ngoài tam
giác Q
NếuHski = 1 hoc=0 đimP snmtrêncnh
tam giác
8
Bi-Linear
z mtnisuyt4 đimP00; P01; P10; P11 trong không gian
Vi(u,v) [0; 1] [0; 1]
P(u,v) = (1 - u)(1 - v)P00 + (1 - u)vP01 + u(1 - v)P10 + uvP11
zDùng để tcác đốitượng hình dng tgiác nhưc, khăn...
zMrng cho các đốitượng cùng loi
9
hình hoá các mt cong
Surface Patches
zRuled Surface
zCoon-Boolean Sum
zSurface of Revolution
zSwept Surface
Extrusion
10
Ruled Surface
zBmtđượcxâydng bng cách
cho trượt1 đonthng trên 2
đường cong
zCác mtknhnđưcbng phép
ni suy tuyếntínhthai đường
cong biên cho trướctương ng
vi hai biên đốidincamtk
P1(u) và P2(u)
0.2
0.4
0.6
0.8
1
0.6
0.7
0.8
0.9
1
1
1.5
2
2.5
3
Ruled Surface (Matke)
Duong cong Bspline
Duong cong Bezier
•Phương trình mtk:
Q(u,v) = P2(u)v + P1(u)(1-v)
Nếuhaiđường cong cho trướctương ng P1(v) và P2(v)
Thì mtk phương trình
Q(u,v) = P1(v)(1-u) + P2(v)u
=)(2
)(1
u] u) - [(1 vP
vP
11
Mttrònxoay
Revolution surface
zMtđượcxâydng biđường
thng hay 1 đường cong phng,
quanh mttrc trong không gian
zGisửđưng cong phng dng
P(t)=[x(t) y(t) z(t)] 0ttmax
z d: quay quanh trcx mtthcthnmtrênmtphng xy, phương
trình bmtlà
Q(t,
φ
) = [ x(t) y(t) cos
φ
z(t) sin
φ
]
π
φ
20
12
VD - Mttrònxoay
P1[1 1 0] và P2[6 2 0] nmtrongmtphng xy. Quay đường thng
quanh trcx sẽđưcmtmt nón. Xác định đimcamtti
t=0.5,
φ
=π/3.
Phương trình tham scho đonthng tP1 tiP2 là:
P(t) = [ x(t) y(t) z(t) ] = P1 + (P1 - P2)t 0 t 1
vi các thành phnĐề-các:
x(t) = x1 + (x2- x1)t = 1+5t
y(t) = y1 + (y2- y1)t = 1+t
z(t) = z1 + (z2- z1)t = 0
Dùng phương trình
Q(1/2, π/3) = [ 1+5t (1+t)cos
φ
(1+t)sin
φ
]
=
=
4
33
4
3
2
7
3
sin
2
3
3
cos
2
3
2
7
ππ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
3
13
Mttrượt-Sweept Surface
zSweep surface là mtđượctobi
bng cách trượtmtthcth
z d: mtđường thng, đagiác, mt
đường cong, mt hình… dc theo mt
đường trong không gian.
zQ(u,v) = P(u)*[ T(v) ]
P(u) thcthcntrượt
[ T(v) ] là ma trnbiếnđổi([ T(v) ] có th
ma trntnh tiến, quay, hay tl…hoc
kếthpcanhiuphépbiếnđổiđó)
Víd:
P1[0 0 0], P2[0 3 0].
P(t) = P1 + (P2 – P1)*u = [0 3u 0 1]
0 u,v 1
ΠΠ
ΠΠ
=
10010
0)2cos()2sin(0
0)2sin()2cos(0
0001
)(
v
vv
vv
vT
14
0
2
4
6
8
10
-3
-2
-1
0
1
-1
-0.5
0
0.5
1
0
2
4
6
8
10
-2
-1
0
1
-1
-0.5
0
0.5
1
dvmt Sweept
Extrusion
zHình vuông xác định bi4 đỉnh :
P1[0 -1 0], P2[0 -1 -1],
P3[0 1 -1], P4[0 1 1]
zĐường cong trượt
x= 10v y= cos(Πv) – 1
Quay 1 góc khi trượt
=
=
1110
1110
1110
1110
1110
4
3
2
1
)(
P
P
P
P
uP
Π
=
101)cos(10
0100
0010
0001
)(
vv
vT
Π
101)cos(10
0100
00)cos()sin(
00)sin()cos(
vv
ϕϕ
ϕϕ
15
Boolean sum
Coon surface
Mtđượcxâydng trên 4 đimvà
các đường cong biên
S(u,v) Mtni suy trên 4 đường biên
S(u; v) = S1(u, v) + S2(u, v) - P(u; v)
Vi:
P(u,v) = (1-u)(1-v)P00 + (1-u)vP01 + u(1-v)P10 + uvP11
S1(u,v) = vA0(u) + (1-v)A2(u)
S2(u; v) = uA1(v) + (1-u)A3(v);
P là các đỉnh camnh 4
Ai(u) là các phương trình đường biên
16
Example
Boolean Sum Surface
Viu = 0
S(0,v) = S1(0,v) + S2(0,v) - P(0, v)
= v A0(0) + (1 - v)A2(0) + 0 A1(v)
+ 1 A3(v) - (1 - v)P00 - v P01
= v P01 + (1 - v)P00 + A3(v) -(1 - v)P00 - v P01
= A3(v)
17
Surface from Curves
zHermite
zBezier
zB-Spline
18
Mtcongbc ba Hermite
()
∑∑
==
=
3
0
3
0
10
ij
ji
ij vuvuCvuQ ,,
[]
=
0 0 0 1
0 1 0 0
123 3
1 1 22
H
M
zQ(u, v) = [U ][C ][V ]T
0 u, v <1
zQ(u, v) = [U][MH] [B] [MH]T[V]T
CuuDuongThanCong.com https://fb.com/tailieudientucntt
CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
4
19
Mnh-patch Bézier
z Hình dng tng quát
zMnh Bezier được hình thành trên
phép trượtcađường cong Bezier.
zVicxâydng nên mnh Bezier dưới
các đimkim soát, to nên đadin
kim soát
zPhương trình tng quát camt cong
tham biếnBezier códng:
u,v E [0, 1]
20
Mnh Bezier bc3
zMt cong Bezier bc3 làmtphbiếnnhttrong
CG, vì điđộ đơngincanó
zHình thành trên 4x4 dimkim soát
zCông thccódng
zĐathc Bernstein có dng:
() () ()
ij
ij jmin PvBuBvuQ ∑∑
==
=3
0
3
0
,,
,
21
Tính chtcamnh Bézier
zTính bao li: Mt cong
Bezier luôn nm trong đa
dinlicacácđimkim
soát
zMt cong điqua 4 đimcn
P00, P01,P10,P11 hay chính
xác
Q(0,0)=P00, Q(0,1)=P01,
Q(1,0)=P10, Q(1,1)=P11
zĐường cong biên caMt
Bezier là đường cong Bezier
zMt cong là liên tc và
đạo hàm riêng các bc
tn ti ca nó cũng liên
tc.
zĐạo hàm riêng camt
cong có dng:
22
zQ(u,v) miđimnmtrênmt cong
()
[]
=
1
v
v
v
1000
3300
3630
1331
BBBB
BBBB
BBBB
BBBB
0001
0033
0363
1331
1uuuv,uQ
2
3
33323130
23222120
13121110
03020100
23
()
[][][][ ][]
TT VMBNUv,uQ =
[N] [M] đượcbiudin=
[
]
[
]
1uuuU 23
=
[
]
[
]
1vvvV 23
=
0001
0033
0363
1331
23
Ni2 miếng Bezier
Bc 3(Bi-cubic)
zHai mnh Q và R cùng chung
tham biếntibiên(Gisu)
zHai đường cong biên phi
bng nhau Q(1,v)=R(0,v)
zHscactcuima trnQ
= ctđầuma trnR
zTương t: Nếutheohướng
cav thìhàngsthay ctma
trn
24
zBccamt cong theo mihưng ca tham biếnbng sđimkimsoáttr1.
zTính liên tc hay đohàmcamt theo mithambiếnbng sđimkimsoát
tr2.
zHình dng camtbiếnđitheocáccnh cađagiáckim soát.
zMtlưichđiquacácđimgóccnh cađagiáckim soát.
zMtlưichnm trong phngiihnbilưicađagiáclikimsoát.
zMtlưi không thay đidưitácđng ca các phép biếnđi affine.
zMiđưng biên camtBezierlà1 đưng cong Bezier vimt cong bcba
Bezier các đưng cong biên luôn đmbolàcácđưng Bezier bc3.
zNhưvylưiđagiácchobmts 4 ×4
CuuDuongThanCong.com https://fb.com/tailieudientucntt
CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
5
25
ĐÁNH GIÁ MT CONG BEZIER
zƯU ĐIM
Dtrong xây dng chương trình
Dtrong render
mt cong mnh biudinđược nhiuhìnhphc
tp
zNHƯỢC ĐIM
Không th tảđưchìnhcu
Điukinđể ni2 mt cong cnrt nhiuđim. Dn
đếnmtkhnăng điukhin
26
Mt cong B-Spline
zPhương trình mtB-spline
zPij đimkim soát
zN và M là đathc B-spline
zVicácmt cong mmt
cong phthucvàocác
knot vector
ji
n
i
m
jhjki PwMuNwuQ ,
11
,, .)().(),( ∑∑
==
=
<
=+
otherwise
xux
uN ii
ki 0
1
)( 1
,
1
1,1
1
1, )().()()(
)(,
++
++
+
+
=
iki
kiki
iki
kii
xx
uNux
xx
uNxu
ukNi
()
+++=
+=
=
)1(1
)1(
10
kninknx
nikkix
kix
i
i
i
27
Đặcđimcamt cong
B-Spline
zSbc caonhtcabmttheomihướng thì bng sốđimkim
soát -1 theo hướng đó.
zĐạo hàm riêng caphương trình bmt theo mithambiếncóbc
bng sốđimkim soát theo tham biếnđótr2.
zBmt B-spline thì không chunh hưởng ca phép biếnđổi anfine.
Bmtsthay đổinếu ta thay đổiđagiáckimsoát.
znh hưởng camtđimkimsoátđơnđượcgiihnbi + - k/2
h/2 khong đốivimithams.
zNếusốđnh cađagiáckimsoátbng sbctheomithambiến
không đim kép nào thì mt B-spline schuyn thành mt
Bezier.
zNếucácđagiáckim soát dng tam giác thì lướiđagiáckim
soát s hình dáng gnging vibmt cong.
zMimtB-Splineluônnmtrongbaolicađagiáckimsoát.
zMimt B-Spline dáng điu luôn bám theo hình dáng cađagiác
kim soát.
28
Mtcongthambiếnbc3
zDavàovicxâydng to
bmt toán hctrênnhng
đimdliu
zDatrênvicxâydng nên b
mtphthucvàobiếns
khnăng thay đimtcách
trcdin thông qua các tương
tác đho.
zQ( u, v ) = [ x y z ]
z= [ x( u, v ) y( u
,v ) z( u, v ) ] umin
u umax , vmin v vmax
29
zBc cao nhtcamttheomihưng bng sđim
kimsoát -1 theo hưng đó
zĐohàmriêngcaphương trình bmttheomt
hưng cóbcbng sđimkimsoát-2.
zMt B.spline không thay đidưitácđng cacác
phépbiếnđi affine
zNếusđimkimsoátbng sbccamt cong
cng 1 thìmt B-spline chuyndng Bezier.
CuuDuongThanCong.com https://fb.com/tailieudientucntt