(c) SE/FIT/HUT 2002
Đường cong trong không gian
3D CURVE
(c) SE/FIT/HUT 2002 2
Đường cong - Curve
Why use curves? Qu đạo chuyn động ca 1 đim trong
không gian
Đường cong biu dinĐim-curve represents points:
ĐimBiu dinvà kim soát đường cong -Points represent-
and control-the curve.
Cách tiếp cn này là cơ sca lĩnh vc Computer Aided Geometric
Design (CAGD).
(c) SE/FIT/HUT 2002 3
Phân loi
Trên cơ sràng buc gia đim và đường trong cảứng dng khoa hc và
thiết kếta co thphân làm 2 loi:
Xp x-Approximation -
Được ng dng trong mô hình hoá hình hc
Ni suy-Interpolation
Trong thiết kếnôi suy cn thiết vi các đối tượng nhưng không phù hp
vi các đối tượng hình dáng bt k"free form“.
(c) SE/FIT/HUT 2002 4
Biu din Đường cong
Tường minh y=f(x)
y = f(x), z = g(x)
impossible to get multiple values for a single
x
break curves like circles and ellipses
into segments
not invariant with rotation
rotation might require further segment
breaking
problem with curves with vertical tangents
infinite slope is difficult to represent
Không tường minh f(x,y)=0 - Implicit equations:
f(x,y,z) = 0
equation may have more solutions than we
want
circle: x² + y² = 1, half circle: ?
problem to join curve segments together
difficult to determine if their tangent
directions agree at their joint point
(c) SE/FIT/HUT 2002 5
Đường cong tham biến
Biu din các đường cong tham biến Parametric representation:
x = x(t), y = y(t), z = z(t)
overcomes problems with explicit and implicit forms
no geometric slopes (which may be infinite)
parametric tangent vectors instead (never infinite)
a curve is approximated by a piecewise polynomial curve
Define a parameter space
1D for curves
2D for surfaces
Define a mapping from parameter space to 3D points
A function that takes parameter values and gives back 3D points
The result is a parametric curve or surface
0t
1
Mapping F :t (x, y, z)
(c) SE/FIT/HUT 2002 6
Parametric Curves
We have seen the parametric form for a line:
Note that x, y and z are each given by an equation that
involves:
The parameter t
Some user specified control points, x0and x1
This is an example of a parametric curve
10
10
10
)1(
)1(
)1(
zttzz
yttyy
xttxx
+=
+=
+
=
(c) SE/FIT/HUT 2002 7
Đườ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 phnnhp nhô ngoài ý
munxuthinnhng đường đathcbc cao
Why cubic?
(c) SE/FIT/HUT 2002 8
P0
P1 p2
p3
P0
P'0 P1
P'1
Đường cong bc3
x= a1+ b1u+ c1u2+ d1u3
y= a2+ b2u+ c2u2+ d2u3
z= a3+ b3u+ c3u2+ d3u3
Vi3 đimP0, P1, P2, P3 phương trình
xác định
(c) SE/FIT/HUT 2002 9
Hermite Spline
A spline is a parametric curve defined by control points
The term spline dates from engineering drawing, where a spline was a piece
of flexible wood used to draw smooth curves
The control points are adjusted by the user to control the shape of the curve
Phương pháp Hermite da trên cơ sca cách biu din Ferguson hay Coons
năm 60
AHermite spline is a curve for which the user provides:
The endpoints of the curve
The parametric derivatives of the curve at the endpoints
The parametric derivatives are dx/dt, dy/dt, dz/dt
That is enough to define a cubic Hermite spline, more derivatives are required
for higher order curves
(c) SE/FIT/HUT 2002 10
Đường cong Hermite
p = p(u) = k0+ k1u + k2u2+ k3u3
p(u) = kiui in
p0 p1ta có hai độ dc p0’vàp
1’vi u = 0 và u = 1 ti hai
đim đầu cui ca đon [0,1].
We have constraints:
The curve must pass through p0when u=0
The derivative must be p0when u=0
The curve must pass through p1when u=1
The derivative must be p1when u=1
(c) SE/FIT/HUT 2002 11
Basis Functions
A point on a Hermite curve is obtained by multiplying each control point
by some function and summing
The functions are called basis functions
(c) SE/FIT/HUT 2002 12
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]
(c) SE/FIT/HUT 2002 13
Đường cong Bezier
Sdng đim các vector kimsoátđượcđộ dccađường
cong tinhưng đimmànóđiqua.(Hermit)
không đượcthunli cho victhiếtkếtương tác, không tiếpcn
vào các độ dccađường cong bng c giá trs(Hermite).
Paul Bezier,RENAULT, 1970 đường bmt UNISURF
(c) SE/FIT/HUT 2002 14
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 độ 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
(c) SE/FIT/HUT 2002 15
Biu din Ma trn
p = p(u) = [ 1 u u2u3]
3
2
1
0
1331
0363
0033
0001
p
p
p
p
0
0.2
0.4
0.6
0.8
1
1.2
B0
B1
B2
B3
(c) SE/FIT/HUT 2002 16
Ưuđim
ddàng kim soát hi`nh dng ca đường cong hơn vector tiếp
tuyến ti p0’vàp
1’ca Hermite.
Nm trong đa giác kim soát vi s đim trung gian tuý( s
bc tu ý)
đi qua đim đầu và đim cui ca đa giác kim st, tiếp xúc vi
cp hai vector ca đầu cui đó
(c) SE/FIT/HUT 2002 17
Example
Bezier Curves
[UW]
(c) SE/FIT/HUT 2002 18
Sub-Dividing Bezier Curves
P0
P1P2
P3
M01
M12
M23
M012 M123
M0123
(c) SE/FIT/HUT 2002 19
Sub-Dividing Bezier Curves
P0
P1P2
P3
(c) SE/FIT/HUT 2002 20
Sub-Dividing Bezier Curves
Step 1: Find the midpoints of the lines joining the original control vertices.
Call them M01, M12, M23
Step 2: Find the midpoints of the lines joining M01, M12 and M12, M23. Call
them M012, M123
Step 3: Find the midpoint of the line joining M012, M123. Call it M0123
The curve with control points P0, M01, M012 and M0123 exactly follows the
original curve from the point with t=0 to the point with t=0.5
The curve with control points M0123 , M123 , M23 and P3exactly follows the
original curve from the point with t=0.5 to the point with t=1
(c) SE/FIT/HUT 2002 21
de Casteljau’s Algorithm
You can find the point on a Bezier curve for any parameter value twith a similar
algorithm
Say you want t=0.25, instead of taking midpoints take points 0.25 of the way
P0
P1P2
P3
M01
M12
M23
t=0.25
(c) SE/FIT/HUT 2002 22
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
=
(c) SE/FIT/HUT 2002 23
Tính cht
P0 và Pn nm trên đường cong.
Đường cong liên tc và đạo hàm liên tc tt ccác bc
Tiếp tuyến ca đường cong ti đim P0 đường P0P1 và ti
Pn là đường Pn-1Pn .
Đường cong nm trong đường bao li convex hull ca các
đim kim st.
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 tn đường cong khi và ch khi
đường cong là đon thng.
(c) SE/FIT/HUT 2002 24
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
(c) SE/FIT/HUT 2002 25
Problem with Bezier Curves
To make a long continuous curve with Bezier segments
requires using many segments
Maintaining continuity requires constraints on the control
point positions
The user cannot arbitrarily move control vertices and automatically
maintain continuity
The constraints must be explicitly maintained
It is not intuitive to have control points that are not free
(c) SE/FIT/HUT 2002 26
Invariance
Translational invariance means that translating the control points and then
evaluating the curve is the same as evaluating and then translating the curve
Rotational invariance means that rotating the control points and then evaluating
the curve is the same as evaluating and then rotating the curve
These properties are essential for parametric curves used in graphics
It is easy to prove that Bezier curves, Hermite curves and everything else we will
study are translation and rotation invariant
Some forms of curves, rational splines, are also perspective invariant
Can do perspective transform of control points and then evaluate the curve
(c) SE/FIT/HUT 2002 27
Longer Curves
A single cubic Bezier or Hermite curve can only capture a small class of curves
At most 2 inflection points
One solution is to raise the degree
Allows more control, at the expense of more control points and higher degree
polynomials
Control is not local, one control point influences entire curve
Alternate, most common solution is to join pieces of cubic curve together into
piecewise cubic curves
Total curve can be broken into pieces, each of which is cubic
Local control: Each control point only influences a limited part of the curve
Interaction and design is much easier
(c) SE/FIT/HUT 2002 28
Piecewise Bezier Curve
knot”
P0,0
P0,1 P0,2
P0,3
P1,0
P1,1
P1,2
P1,3
(c) SE/FIT/HUT 2002 29
Continuity
When two curves are joined, we typically want some degree of continuity
across the boundary (the knot)
C0, “C-zero”, point-wise continuous, curves share the same point where they
join
C1, “C-one”, continuous derivatives, curves share the same parametric
derivatives where they join
C2, “C-two”, continuous second derivatives, curves share the same parametric
second derivatives where they join
Higher orders possible
Question: How do we ensure that two Hermite curves are C1across a
knot?
Question: How do we ensure that two Bezier curves are C0, or C1, or C2
across a knot?
(c) SE/FIT/HUT 2002 30
Đường bc ba Spline
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