CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
1
Khoa CNTT DHBK Hanoi
1
Đường cong trong không gian
3D CURVE
Khoa CNTT DHBK Hanoi
2
Đường cong - Curve
Why use curves? Qu đạo chuyn động ca 1 đim trong không gian
Đim biu dinĐường cong -curve represents points:
là phương pháp được s dng trong khoa hc vt lý và k ngh nói
chung.
Các đim d liu được đo chính xác trên các thc th s chính đối
tượng cơ s. Đường cong đi qua các đim d liu hin th h tr cho
vic nhn ra xu hướng và ý nghĩa c các đim d liu.
Các k thut phc tp “vd bình phương sai sđược dùng đưa đường
cong hp vi 1 dng toán hc cơ bn.
Biu din Đimvà kim soát đường cong -Points represent-and
control-the curve.
đường cong là các đối tượng cơ bn thường là kết qu ca tiến trình
thiết kế và các đim đóng vai trò là công c để kim soát và và mô hình
hoá đường cong.
Cách tiếp cn này là cơ s ca lĩnh vc Computer Aided Geometric
Design (CAGD).
Khoa CNTT DHBK Hanoi
3
Phân loi
Trên cơ s ràng buc gia đim và đường trong c ng dng khoa
hc và thiết kế ta co th phân làm 2 loi:
Ni suy-Interpolation - đường cong đi qua các đim, trong ng
dng khoa hc các yêu cu v ràng buc s dng đa thc hay các
hàm bc cao tuy nhiên kết qu thường có nhng hiu ng ph như
sai s phóng đại hay độ nhp nhô ca đường cong do đa thc bc
cao to nên.
Trong thiết kế nôi suy là cn thiết vi các đối tượng nhưng không
phù hp vi các đối tượng có hình dáng bt k "free form“.
Xp x-Approximation - đường cong không cn đi qua các đim,vi
các ng dng khoa hc ta gi là trung bình d liu- data averaging
hay trong thiết kế điu khin đường cong.
Khoa CNTT DHBK Hanoi
4
Polynomial Parametric Curves
What degree should we use to represent a
curve?
We choose the third degree:
Cubic polynomials
Higher degrees:
Require more computation
Have extra “wiggles”
Provide more flexibility than is required.
Are often used to model cars and aeroplanes
Khoa CNTT DHBK Hanoi
5
Tính cht c đường cong bc 3
Tham biến – parametric s dng tham biến ngoài để biu din cho
các tham biến trong
Độ mượt - smooth. Vi đưng cong Hermite and Bézier tính liên
tc continuity ca đường cong hay đạo hàm bc 1-first derivative ti
các đim kim soát-control point. Vi B-splines tính liên tc trên đạo
hàm bc 2 second derivative hay độ cong được đảm bo curvature.
Độ biến đổi -"variation diminishing." đường cong ít b khuếch đại
sai s bi các đim kim soát hay tính nhp nhô ca đưng cong
hn chế -oscillate.
Ví d Bézier curve, for instance, lies within the convex hull (polygon
envelope) of the set of control points.
Điêm kim soát cc b-local control. đường cong b nh hưởng
mnh nht vi chính các đim kim soát gn chúng nht.
Khoa CNTT DHBK Hanoi
6
Đường cong đa thc bc ba
Phiđảmbolàđường cong không gian vi3 trcto
độ x, y, z
tránh đượcnhng tính toán phctpvànhng phn
nhp nhô ngoài ý munxuthinnhng đường đa
thcbccao
Why cubic?
lower-degree polynomials give too little flexibility in controlling the
shape of the curve
higher-degree polynomials can introduce unwanted wiggles and
require more computation
lowest degree that allows specification of endpoints and their
derivatives
lowest degree that is not planar in 3D
CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
2
Khoa CNTT DHBK Hanoi
7
Kinds of continuity:
G0: two curve segments join together
G1: directions of tangents are equal at the joint
C1: directions and magnitudes of tangents are equal
at the joint
Cn: directions and magnitudes of n-th derivative are
equal at the joint
Khoa CNTT DHBK Hanoi
8
P0
P1 p2
p3
P0
P'0 P1
P'1
Đường cong bc3
Theo Lagrange:
x= a1+ b1u+ c1u2+ d1u3
y= a2+ b2u+ c2u2+ d2u3
z= a3+ b3u+ c3u2+ d3u3
3 phương trinh vi12 ns
Vi3 đimP0, P1, P2, P3 phương trình xác đnh
Khoa CNTT DHBK Hanoi
9
Đường cong Hermite
Phương pháp Hermite da trên cơ sca cách biu din
Ferguson hay Coons năm 60
đưng bc ba sxác đnh bi hai đim đu vàcui cùng vi hai góc
nghiêng ti hai đim đó
p = p(u) = k0+ k1u + k2u2+ k3u3
p(u) = kiui in
p= p(u) = k1+ 2k2u + 3k3u2
p0 vàp1ta có hai đdc p0vàp1vi u = 0 vàu = 1 ti hai đim đu
cui ca đon [0,1].
k1+ 2k2+ 3k3= p1
k0= p0k1= p1
k2= 3(p1p0) - 2p0’–p1
k3= 2(p0-p1) + p0+ p1Khoa CNTT DHBK Hanoi
10
Thay vào:
p= p(u) = p0(1-3u2+2u3) + p1(3u2-2u3)
+ p0(u-2u2+u3) + p1(-u2+u3)
p = p(u) = [ 1 u u2 u3]
1
0
1
0
1122
1233
0100
0001
'
'
.
p
p
p
p
Khoa CNTT DHBK Hanoi
11 Khoa CNTT DHBK Hanoi
12
Đường cong Bezier
Sdng đim các vector kimsoátđưcđdc
cađưng cong tinhưng đimmànóđi
qua.(Hermit)
không đưcthunlichovicthiếtkếtương tác,
không tiếpcnvàocácđdccađưng cong
bng các giá trs(Hermite).
Paul Bezier,RENAULT, 1970 đưng bmt
UNISURF
CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
3
Khoa CNTT DHBK Hanoi
13
po, p3 tương đương vi p0, p1 trên đưng Hermite.
dim trung gian p1, p2 đưc xác đnh bng 1/3 theo
đdài ca vector tiếp tuyến ti đim po và p3
p0’= 3(p
1–p
0)
p3’= 3(p
3–p
2)
p = p(u) = p0(1-3u2+2u3) + p1(3u2-2u3) + p0’(u-
2u2+u3) + p1’(-u2+ u3)
p = p(u) = p0(1 - 3u + 3u2-u
3) + p1(3u-6u2+3u3)
+ p2(3u2-3u
3) + p3u3
Khoa CNTT DHBK Hanoi
14
p = p(u) = [ 1 u u2u3]
3
2
1
0
1331
0363
0033
0001
p
p
p
p
Khoa CNTT DHBK Hanoi
15
Ưuđim
ddàng kim soát hi`nh dng ca đưng cong hơn
vector tiếp tuyến ti p0vàp1ca Hermite.
Nm trong đa giác kim soát vi s đim trung gian
tuý( sbc tu ý)
đi qua đim đu và đim cui ca đa giác kim soát,
tiếp xúc vi cp hai vector ca đu cui đó
Khoa CNTT DHBK Hanoi
16
De Casteljau algorithm
Khoa CNTT DHBK Hanoi
17
BiuthcBezier-Bernstain
Tng quát hoá vin+1 đimkim soát
p0... pn : vector vtrí cađagiácn+1 đnh
))(()(
)()(
1
0
1,
0
,
ii
n
i
ni
i
n
i
ni
PpuBnup
puBup
=
=
+
=
=
ini
ni uuinCuB
= )1(),()(
,
)!in(!i
!n
)i,n(C
=
Khoa CNTT DHBK Hanoi
18
Tính cht
P0 và Pn nm trên đường cong.
Đường cong liên tc và có đạo hàm liên tc tt c các
bc
Tiếp tuyến ca đường cong ti đim P0 là đường P0P1
và ti Pn là đường Pn-1Pn .
Đường cong nm trong đường bao li convex hull ca
các đim kim soát.
This is because each successive Pi(j) is a convex
combination of the points Pi(j-1) and Pi-1(j-1) .
P1 ,P2 , … ,Pn-1 nm trên đường cong khi và ch khi
đường cong là đon thng.
CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
4
Khoa CNTT DHBK Hanoi
19
Review:
Bézier Curve Prop’s [1/6]
We looked at some properties of Bézier curves.
Generally “Good” Properties
Endpoint Interpolation
Smooth Joining
Affine Invariance
Convex-Hull Property
Generally “Bad” Properties
Not Interpolating
No Local Control
Khoa CNTT DHBK Hanoi
20
Đường bcbaSpline
Spline đi qua n đim cho trưc màmi đon là
đưng bc ba đc lp có đdc và đcong liên
tc ti mi đim kim soát hay đim nút
Vi n đim:n-1 đon vi mi đon 4 vector hs
4(n-1) cho n-1 đon, và 2(n-1) điu kin biên và n-
2 điu kin v đdc cùng n-2 v đcong
Spline dùng đch phương pháp biu din
đưng cong mm thông qua các đon cong tham
biến bc ba vi các điu kin liên tc ti các đim
đu nút
Khoa CNTT DHBK Hanoi
21
Đường cong bcba
Spline
u0= 0 vi: (u0... un-1)uj+1 > uj
ui+1 = ui + di+1
C0đkhông sgián đongia hai đon cong.
C1tính liên tcbcnht hay đohàmbcnhttiđim
ni.
C2đo hàm bc hai liên tccađưng cong tiđimni
Khoa CNTT DHBK Hanoi
22
tính liên tccađohàmbchaiticácđimnicóthd
dàng đtđưcbng cách đtPi
-1(ui-1=1) đohàmbchai
tiđimcuicađon(i-1) bng vi P’’i(ui=0) đohàmbc
hai tiđimđucađonthi.
P’’i-1(1)= P’’i(0)
y Pn-1
Pn-1
PoP1
x z Po
p = [ 1 u u2 u3]
1
0
1
0
1122
1233
0100
0001
'
'
.
p
p
p
p
Khoa CNTT DHBK Hanoi
23
Đường cong B-spline
Đường cong B-spline là đường cong được sinh
ra t đa giác kim soát mà bc ca nó không ph
thuc vào s đỉnh ca đa giác kim soát.
Khoa CNTT DHBK Hanoi
24
B-Splines:
The Idea [1/2]
The repeated-lirping idea that produced the Bézier
curves has the drawbacks that is produces polynomials
with high degree that are nonzero almost everywhere.
Using functions defined in pieces, we can fix these two.
Start: An order-1 B-Spline has blending functions that are
always either 1 or 0. When a function is 1, all the rest are
zero.
So an order-1 B-spline is just a sequence of points.
Any number of control points may be used.
Now we make higher-order B-splines using a repeated-
lirping procedure.
But this time, we can use any number of control points.
CNTT-DHBK Hanoi
hunglt@it-hut.edu.vn
5
Khoa CNTT DHBK Hanoi
25
B-Splines:
The Idea [2/2]
We form an order-2 B-Spline by lirping between the order-1 blending
functions.
As discussed, we get functions that start at 0, ramp up to 1 and back
down, then stay at zero. Each function is 0 most of the time.
So each blending function is defined in pieces. Each piece is a
polynomial of degree 1 (graph is a line).
So an order-2 B-spline is just the control polygon.
Again, any number of control points may be used.
We form an order-3 B-Spline by lirping between the order-2 blending
functions.
Now blending functions are smooth. They start at 0, curve up to 1 then
back down. Again, each function is 0 most of the time.
Again, each blending function is defined in pieces. Each piece is a
polynomial of degree 2.
We continue this repeated-lirping procedure to define B-splines of
higher order.
See the blue book for details and graphs. Khoa CNTT DHBK Hanoi
26
Types of B-Splines Approximation Curves Used
B-Spline approximations can be classified based on the
spacing of the knot vector and the use of weights.
1. Uniform/Periodic B-splines : The spacing is
unform and the knots (control points) are equispaced e.g.
[0,1,2,3,4,5] These have satisfactory smoothness but lack
local control and the starting and ending poits are ill
defined as above.
2. Non-periodic: The knots are repeated at the ends m
times and the interior is equispaced. e.g. [0 0 0 1 2 3 3 3
] These can be used to force the control point to start
and finish at a control point.
3. Non-uniform B-Splines : The spacing is non-
uniform and or repeated knots e.g. [0 1124566
]These can be used to obtain local control
B-Splines
Khoa CNTT DHBK Hanoi
27
B-spline
Ni,k(u) đa thc B-Spline cơ bn
Vin+ 1 sô đimkim soát
Pi đim kim soát th i
k bc ca đường cong 1<k<n+2
Ui vector nút ca đường cong
U=
[
U1
,
U2...Un+k+1
]
i
n
i
ki PuNuP
=
=
0
,).()(
)(
)(
)(
)(
)(
)( 1,
21
1
1,1
1
1
,uN
UU
uU
uN
UU
Uu
uN ki
kii
i
ki
kii
ki
ki
++
+
+
+
+
=
=+
others0
],[1
)( 1
1,
ii
i
uuu
uN
Khoa CNTT DHBK Hanoi
28
Khoa CNTT DHBK Hanoi
29
Đặcđim
B-spline không đi qua hai đim đu vàcui trkhi hàm hp đưc
dùng làtuyến tính.
B-spline cóth đưc to qua hai đim đu, cui vàtiếp xúc vi vector
đu vàcui ca đa giác kim soát. Bng cách thêm vào các nút ti vtrí
ca các nút cui ca vector tuy nhiên các giátrging nhau không
nhiu hơn bc ca đưng cong.
Tính cht bao li ca đa giác kim soát vàtính cht chun đưc thoa
mãn.
S lưng các nút, bc ca đưng cong vàs đim điu khin luôn có
các quan hràng buc:
0 u n - k + 2
1(u)N
n
0i
ki, =
=
Khoa CNTT DHBK Hanoi
30
B Spline -Đuvàtunhoàn
Vecto nút là đều khi giá tr ca chúng cách đều nhau mt
khong xác định. Trong các bài toán thc tế, vecto nút
đều được bt đầu t 0 và tăng 1 cho đến giá tr ln nht
d: [ 0 1 2 3 4 5 ] vixác đnh = 1
[ -2 -1/2 1 5/2 4 ] vixác đnh = 3/2
Vi cp là k, s đim kim soát là n+1 thì vecto nút đều là
U=[0 1 2 ...n+k] khong tham s (k-1)u(n+1).
Khi vecto nút là đều thì ta có Ni,k(u)=Ni-1,k(u-
1)=Ni+1,k(u+1)