Curve and Surface Modeling - GitHub Pages
Transcript of Curve and Surface Modeling - GitHub Pages
![Page 1: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/1.jpg)
Curve and Surface Modeling
Teacher: A.Prof. Chengying Gao (高成英)
E-mail: [email protected]
School of Data and Computer Science
Computer Graphics
![Page 2: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/2.jpg)
Outline
• Interpolation and Approximation
• Curve Modeling• Parametric curve
• Cubic Hermite interpolation
• Bézier curve
• B-Spline
• Surface Modeling• Bézier surface
2Computer Graphics
![Page 3: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/3.jpg)
Introduction
3Computer Graphics
• Raw data is very popular in
many experimental study and
usually it need fitting before it
can be understand well.
![Page 4: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/4.jpg)
Introduction
4Computer Graphics
![Page 5: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/5.jpg)
Introduction
5Computer Graphics
Surface fitting to 3D points Chart by Microsoft Excel
![Page 6: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/6.jpg)
Interpolation and approximation
• Interpolation: When the curve passes
through all the control points then it
is called as Interpolation.
• Approximation: When the curve does
not passes through the control points
then it is called as approximation.
6Computer Graphics
![Page 7: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/7.jpg)
Interpolation case
• For example, suppose we have a table like this, which gives some values of an unknown function f.
7Computer Graphics
Interpolation provides a means of estimating the function at intermediate
points, such as x = 2.5.
![Page 8: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/8.jpg)
Piecewise constant interpolation
• The simplest interpolation method is to locate the nearest data
value, and assign the same value.
8Computer Graphics
![Page 9: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/9.jpg)
Linear interpolation
• Generally, linear interpolation takes two data points, say (xa,ya)
and (xb,yb), and the interpolant is given by:
9Computer Graphics
![Page 10: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/10.jpg)
Polynomial interpolation
• Polynomial interpolation is a generalization of linear interpolation.
Note that the linear interpolation is a linear function. We now
replace this interpolation with a polynomial of higher degree.
• The following sixth degree polynomial goes through all the seven
points:
10Computer Graphics
6 5
4 3
2
( ) 0.0001521 0.003130
0.07321 0.3577
0.2255 0.9038
f x x x
x x
x x
![Page 11: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/11.jpg)
Approximation – Least squares fitting
• Linear least squares• A fitting model is a linear one when the model comprises a
linear combination of the parameters, i.e.,
where the function 𝜙𝑗 is a function of 𝑥 .
11Computer Graphics
1
( , ) ( ),m
j j
j
f x x
![Page 12: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/12.jpg)
• As a result of an experiment, four (x, y) data points were obtained, (1, 6), (2,
5), (3, 7), and (4, 10).
• We hope to find a line 𝑦 = 𝛽1 + 𝛽2𝑥 that best fits these four points. In
other words, we would like to find the numbers 𝛽1 and 𝛽2 that
approximately solve the over-determined linear system
of four equations in two unknowns in some "best" sense.
• A residual is defined as the difference between
the actual value of the dependent variable and
the value predicted by the model.
Least squares fitting example
12Computer Graphics
1 2 1 2
1 2 1 2
1 6, 2 5,
3 7, 4 10.
( , ).i i ir y f x
![Page 13: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/13.jpg)
Least squares fitting example
• The "error", at each point, between the curve fit and the data is the difference
between the right- and left-hand sides of the equations above. The least squares
approach to solving this problem is to try to make the sum of the squares of these
errors as small as possible; that is, to find the minimum of the function
• The minimum is determined by calculating the partial derivatives of 𝑆(𝛽1, 𝛽2) with
respect to 𝛽1 and 𝛽2 and setting them to zero
• This results in a system of two equations in two unknowns, called the normal
equations, which give, when solved 𝛽1 = 3.5, 𝛽2 = 1.4 ,
and the equation 𝑦 = 3.5 + 1.4𝑥 of the line of best fit.
13Computer Graphics
2 2
1 2 1 2 1 2
2 2
1 2 1 2
2 2
1 2 1 2 1 2
( , ) 6 ( 1 ) 5 ( 2 )
7 ( 3 ) 10 ( 4 )
4 30 20 56 154 210
S
1 2 1 2
1 2
0 8 20 56, 0 20 60 154.S S
![Page 14: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/14.jpg)
Approximation – Quadratic least squares fitting
• Importantly, in linear least squares, we are not restricted to using a line as the model
as in the above example. For instance, we could have chosen the restricted
quadratic model 𝑦 = 𝛽1𝑥2. This model is still linear in the 𝛽1 parameter, so we can
still perform the same analysis, constructing a system of equations from the data
points:
• The partial derivatives with respect to
the parameters (this time there is only one)
are again computed and set to 0:
and solved 𝛽1 = 0.703𝑥2
• leading to the resulting best fit model 𝑦 = 0.703𝑥2
14Computer Graphics
2 2
1 1
2 2
1 1
6 (1) (2)
7
, 5
, 10(3) (4)
1
1
0 708 498S
![Page 15: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/15.jpg)
General - Least Square Methods
• How to draw a curve approximately fitting to raw data?
• Raw data usually has noise. The values of dependent variables vary
even though all the independent variables are constant. Therefore, the
estimation of the trend the dependent variables is needed. This process
is called regression or curve fitting.
• The estimated equation (matrix) satisfy the raw data. However, the
equation is not usually unique, and the equation or curve with a
minimal deviation from all data points is desirable.
• This desirable best-fitting equation can be obtained by least square
method which uses the minimal sum of the deviations squared (偏差的
平方和) from a given set of data.
15Computer Graphics
![Page 16: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/16.jpg)
Least square formulation
• If you have a data set (x1,y1), (x2, y2) , ... , (xn, yn) and the
best curve f(x) should be with the property as follows
16Computer Graphics
2
1
))(( i
n
i
i yxfE
Minimum Least
Square error
![Page 17: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/17.jpg)
Least square line
• When n = 2, E = 0
17Computer Graphics
(x1,y1)
(x2,y2)
![Page 18: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/18.jpg)
Least square line
• When n>2, if (x1,y1), (x2, y2) , ... , (xn, yn) are collinear,
E = 0
18Computer Graphics
(x1,y1)
(xn,yn)
![Page 19: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/19.jpg)
Least square line
• Line equation y = k x + b
19Computer Graphics
(x1,y1)
(xn,yn)
x
y
b
![Page 20: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/20.jpg)
Least square line
• How to get k and b ?
20Computer Graphics
nn ybkx
ybkx
ybkx
22
11
nn y
y
y
b
k
x
x
x
2
1
2
1
1
1
1
1
or
Mostly an approximation solution can exist, when the rank
of the coefficient matrix is 2, which is the column number.
![Page 21: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/21.jpg)
Least square line
• How to get k and b ?
21Computer Graphics
n
n
n
n
y
y
y
xxx
b
k
x
x
x
xxx
2
1
212
1
21
111
1
1
1
111
n
i
i
n
i
ii
n
i
i
n
i
i
n
i
i
y
yx
b
k
nx
xx
1
1
1
11
2
![Page 22: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/22.jpg)
Least square line
• How to get k and b ?
22Computer Graphics
n
i
i
n
i
ii
n
i
i
n
i
i
n
i
i
y
yx
b
k
nx
xx
1
1
1
11
2
The unique solution of this system k and b can satisfy the following
condition and a least square line is obtained.
2
1
))(( i
n
i
i yxfE
Minimum
![Page 23: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/23.jpg)
Least square line
• For parametric definition, the least square line problem is now
to find satisfying
• Ways to choose will affect the result.
24Computer Graphics
1010 ,,, bbaa
nttt ,,, 21
n
i
iiii ytyxtxE1
22 ))(())((Minimum
![Page 24: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/24.jpg)
Least square curve
• Why we need least square curve? When raw data is too
complicated, least square line is not good enough.
25Computer Graphics
E is too large
![Page 25: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/25.jpg)
Least square curve
• In more general, can be a polynomial of
degree 𝑘
• The problem becomes now to find
satisfying the following
26Computer Graphics
kPxf )(
k
k xaxaxaaxf 2
210)(
0 1, , , ka a a
2
1
))(( i
n
i
i yxfE
Minimum
![Page 26: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/26.jpg)
Least square curve
• Systems to be solved are
And
27Computer Graphics
n
k
nknn
k
k
k
k
yxaxaxaa
yxaxaxaa
yxaxaxaa
2
210
22
2
22210
11
2
12110
nkk
nnn
k
k
y
y
y
a
a
a
xxx
xxx
xxx
2
1
1
0
2
2
2
22
1
2
11
1
1
1
The coefficient matrix 𝑴 ∶ 𝒏 𝒙 (𝒌 + 𝟏)
![Page 27: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/27.jpg)
Least square curve
• When 𝑛 > 𝑘 and rank of 𝑀 is 𝑘 + 1, we solve the following
system to get the least square curve
28Computer Graphics
n
k
n
kkk
n
kk
nnn
k
k
k
n
kkk
n
y
y
y
xxxx
xxxx
a
a
a
xxx
xxx
xxx
xxxx
xxxx
2
1
321
3211
0
2
2
2
22
1
2
11
321
321
1111
1
1
11111
The coefficient matrix 𝑴𝑻𝑴 ∶ (𝒌 + 𝟏) 𝒙 (𝒌 + 𝟏)
DMXMM TT )(
![Page 28: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/28.jpg)
Least square curve
• If 𝑥1 ≠ 𝑥2 ≠ ⋯ ≠ 𝑥𝑛 and 𝑛 > 𝑘, we can always find the
unique solution of the system, and it will be the least square
solution to the original system.
29Computer Graphics
The curve is much better than the
line to satisfy the raw data
![Page 29: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/29.jpg)
Outline
• Interpolation and Approximation
• Curve Modeling• Parametric curve
• Cubic Hermite interpolation
• Bézier curve
• B-Spline
• Surface Modeling• Bézier surface
30Computer Graphics
![Page 30: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/30.jpg)
Classification of curves
31Computer Graphics
![Page 31: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/31.jpg)
Classification of curves
32Computer Graphics
![Page 32: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/32.jpg)
Implicit curves
• Advantage of implicit curve:
• To a point (x,y), it is easy to detect whether f(x,y) is >0 ,<0 or =0.
• Disadvantage of implicit curve:
• To a curve f(x,y) = 0, it is difficult to find the point on it.
33Computer Graphics
![Page 33: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/33.jpg)
Parametric curves
36Computer Graphics
• Variable is a scalar, and function is a vector:
• Every element of the vector is a function of the variable (the
parameter)
![Page 34: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/34.jpg)
Parametric curves
37Computer Graphics
![Page 35: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/35.jpg)
Least square parametric curve
• Parametric definition of the curve (3D)
• Square Error
38Computer Graphics
k
k
k
k
k
k
tctctcctz
tbtbtbbty
tatataatx
2
210
2
210
2
210
)(
)(
)(
n
i
iiiiii ztzytyxtxE1
222 ))(())(())((
![Page 36: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/36.jpg)
Least square curve – general case
• General method to solve the problem is based on the
following
• The least square solution can be got by solving a related
linear system
39Computer Graphics
kic
E
b
E
a
E
iii
,,0,0,0,0
![Page 37: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/37.jpg)
Least square parametric curve
• Remark: the different choice of t1 , t2, …, tn will lead
different result.
• Chord length (弦长) parameter is one of the best.
40Computer Graphics
ni
PPtt
t
iiii
,,2
0
11
1
![Page 38: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/38.jpg)
Least square parametric curve
41Computer Graphics
![Page 39: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/39.jpg)
Outline
• Interpolation and Approximation
• Curve Modeling• Parametric curve
• Cubic Hermite interpolation
• Bézier curve
• B-Spline
• Surface Modeling• Bézier surface
42Computer Graphics
![Page 40: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/40.jpg)
Splines - History
• Draftsman use ‘ducks’ and strips of wood (splines) to draw curves
• Wood splines have second-order continuity
• And pass through the control points
43Computer Graphics
A Duck (weight) Ducks trace out curve
![Page 41: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/41.jpg)
Spline in industry
44Computer Graphics
![Page 42: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/42.jpg)
Interpolation
45Computer Graphics
• Goal: interpolate values
![Page 43: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/43.jpg)
Nearest neighbor interpolation
46Computer Graphics
Problem: values not continuous
![Page 44: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/44.jpg)
Linear interpolation
47Computer Graphics
Problem: derivatives not continuous
![Page 45: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/45.jpg)
Smooth interpolation?
48Computer Graphics
Smooth curveNN interpolation Linear interpolation
20 x 20 pixel
![Page 46: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/46.jpg)
Cubic Hermite Interpolation
49Computer Graphics
Given: value and derivatives at 2 points
Hermite曲线是通
过给定曲线的两
个端点的位置矢
量P(0)、P(1)以及
两个端点处的切
线矢量P’(0)、P’(1)
来描述曲线。
![Page 47: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/47.jpg)
Cubic Hermite Interpolation
• Assume Cubic polynomial
• Solve for coefficients:
50Computer Graphics
![Page 48: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/48.jpg)
Cubic Hermite Interpolation
• Cubic polynomial
• Solve for coefficients:
51Computer Graphics
![Page 49: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/49.jpg)
Matrix Representation of Solution
52Computer Graphics
![Page 50: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/50.jpg)
Solve for a, b, c, d
• Matrix Inverse
53Computer Graphics
![Page 51: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/51.jpg)
Matrix Transpose
54Computer Graphics
![Page 52: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/52.jpg)
Matrix Representation of Polynomials
• Cubic polynomial
55Computer Graphics
t0=1
![Page 53: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/53.jpg)
Insert identity matrix
56Computer Graphics
![Page 54: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/54.jpg)
Change Basis
57Computer Graphics
![Page 55: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/55.jpg)
Hermite Basis Functions
58Computer Graphics
![Page 56: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/56.jpg)
Hermite Basis Functions
59Computer Graphics
![Page 57: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/57.jpg)
Hermite Basis Functions
60Computer Graphics
![Page 58: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/58.jpg)
Case
• P(t) = (2t3 - 3t2 + 1) p0
+ (t3 - 2t2 + t) m0
+ (-2t3 + 3t2) p1
+ (t3 - t2) m1
61Computer Graphics
[0, 1]t
![Page 59: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/59.jpg)
Case
• The derivatives and the shape of Hermite curves
62Computer Graphics
![Page 60: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/60.jpg)
Outline
• Interpolation and Approximation
• Curve Modeling• Parametric curve
• Cubic Hermite interpolation
• Bézier curve
• B-Spline
• Surface Modeling• Bézier surface
63Computer Graphics
![Page 61: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/61.jpg)
Bézier curve
• A Bézier curve is a parametric curve frequently used in
computer graphics and related fields.
64Computer Graphics
Pierre BézierAn engineer at Renault
![Page 62: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/62.jpg)
The definition of Bézier curve
• Bézier curve本质上是由调和函数(Harmonic functions)根据控制点
(Control points)插值生成。其参数方程如下:
• 上式为𝑛次多项式,具有 𝑛 + 1项。其中,𝑃𝑖(𝑖 = 0, 1…𝑛)表示特征多边
形的𝑛 + 1个顶点向量; 𝐵𝑖,𝑛(𝑡)为伯恩斯坦(Bernstein)基函数,其多
项式表示为:
65Computer Graphics
![Page 63: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/63.jpg)
Intuition for Bezier curves
• Keep on cutting corners to make a “smoother” curve
• In the limit, the curve becomes smooth
67Computer Graphics
![Page 64: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/64.jpg)
Linear Bézier curve
• Linear polynomial (一次多项式) has two control points, the
matrix representation is in the following:
• Actually, it is a line.
68Computer Graphics
![Page 65: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/65.jpg)
Quadratic Bézier curve
• Quadratic polynomial (二次多项式) has 3 control points, the
math formula is as follows:
• Quadric Bézier curve is parabola,It’s matrix representation:
69Computer Graphics
![Page 66: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/66.jpg)
Cubic Bézier curve
• Cubic polynomial (二次多项式) has 4 control points, the math
formula is as follows:
• The matrix representation:
70Computer Graphics
![Page 67: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/67.jpg)
Bernstein Basis Functions
• 根据Bernstein多项式构成了三次Bézier曲线的一组基,或称为三次Bézier
曲线的调和函数,即:
71Computer Graphics
The basis functions of cubic Bézier curve on the range t in [0,1]
B0,3(t) B3,3(t)
B1,3(t)
B2,3(t)
![Page 68: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/68.jpg)
High-order Bézier curve
• For fourth-order curves one can construct intermediate
points Q0, Q1, Q2 & Q3 that describe linear Bézier curves,
points R0, R1 & R2 that describe quadratic Bézier curves, and
points S0 & S1 that describe cubic Bézier curves:
72Computer Graphics
![Page 69: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/69.jpg)
High-order Bézier curve
• For fifth-order curves, one can construct similar intermediate points.
73Computer Graphics
![Page 70: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/70.jpg)
The properties of Bézier curve
• 1. 端点性质:当𝑡 = 0和𝑡 = 1时,有:
• 这说明,Bézier曲线通过特征多边形的起点和终点。
74Computer Graphics
![Page 71: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/71.jpg)
The properties of Bézier curve
• 2. 对称性:由于𝐵𝑖,𝑛(𝑡) = 𝐵𝑛−𝑖,𝑛 1 − 𝑡 ,如果将控制点的顺序颠倒过来,
记𝑃𝑖∗ = 𝑃𝑛−𝑖,则根据Bézier曲线的定义可推出:
• 这说明,只要保持特征多边形的顶点位置不变,但顺序颠倒,所得的
新的Bézier曲线形状不变,只是参数变化的方向相反。
75Computer Graphics
![Page 72: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/72.jpg)
The properties of Bézier curve
• 凸包性:由于当𝑡 ∈ [0,1]时,Bernstein多项式之和为:
• 且有
• 则说明𝐵𝑖,𝑛(𝑡)构成了Bézier曲线的一组权函数,所以Bézier
曲线一定落在其控制多边形的凸包之中。
76Computer Graphics
![Page 73: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/73.jpg)
The properties of Bézier curve
• 几何不变形(Geometric Invariant):指Bézier曲线的形状不随坐
标变换而变化的特性。 Bézier曲线的形状只与各控制顶点的相对
位置有关。
• 因此,在对Bézier曲线进行几何变换时,不需要对曲线上的所有
点都进行处理,只需要先对控制顶点进行几何变换,然后重新绘
制曲线就可以。
77Computer Graphics
P0
P1 P2
P3
![Page 74: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/74.jpg)
Implementation – Cubic Bézier curve
78Computer Graphics
![Page 75: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/75.jpg)
Outline
• Interpolation and Approximation
• Curve Modeling• Parametric curve
• Cubic Hermite interpolation
• Bézier curve
• B-Spline
• Surface Modeling• Bézier surface
79Computer Graphics
![Page 76: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/76.jpg)
Why to introduce B-Spline?
• Bezier curve has many advantages, but they have two main shortcomings:
– The number of control points determines the degree of the
curve. many control points means high degree.
– It’s global. A control point influences the whole curve.
• B-spline curves do not suffer these drawbacks.
80Computer Graphics
![Page 77: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/77.jpg)
B-Spline Curve
81Computer Graphics
![Page 78: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/78.jpg)
B-Spline Curve
82Computer Graphics
![Page 79: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/79.jpg)
Definition of B-splines
83Computer Graphics
• B-spline curve is piecewise polynomial curve
• Given knot vector(节点向量) :
u={u0, u1, …, ui, …, un+k+1 }
A B-spline of degree k (order k+1) with (n+1) control points is defined as
K次或k+1阶B样条
,
0
n
i i k
i
u N u
R R ],[ 10 knuuu
![Page 80: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/80.jpg)
Definition of B-splines
84Computer Graphics
• Ri: control points,{Ri}i=0,1,…,n: control polygon
• Ni,k(u) are basis of B-spline:
1
,0
1
, , 1 1, 1
1 1
1
0
00
0
i i
i
i i k
i k i k i k
i k i i k i
u u uN
u u u uN u N u N u
u u u u
当
其它
定义
![Page 81: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/81.jpg)
B-splines Basis
85Computer Graphics
![Page 82: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/82.jpg)
B-splines Basis
86Computer Graphics
![Page 83: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/83.jpg)
B-splines Basis Vs. Bernstein
87Computer Graphics
![Page 84: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/84.jpg)
Cubic B-Splines
![Page 85: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/85.jpg)
Cubic B-Splines
![Page 86: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/86.jpg)
Cubic B-Splines
![Page 87: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/87.jpg)
Cubic B-Splines
![Page 88: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/88.jpg)
Cubic B-Splines
![Page 89: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/89.jpg)
Cubic B-Splines
![Page 90: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/90.jpg)
Kinds of B-Spline
94Computer Graphics
![Page 91: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/91.jpg)
Kinds of B-Spline
95Computer Graphics
![Page 92: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/92.jpg)
Kinds of B-Spline
96Computer Graphics
![Page 93: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/93.jpg)
Properties of B-Spline
97Computer Graphics
1. Convex Hull Property
2. variation diminishing property.
3. Affine Invariance
4. local
5. piecewise polynomial
![Page 94: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/94.jpg)
Why Introduces to NURBS?
98Computer Graphics
抛物线 椭圆(上)与圆(下) 双曲线
![Page 95: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/95.jpg)
Definition of NURBS Curve
99Computer Graphics
![Page 96: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/96.jpg)
Propertise of NURBS Curve
100Computer Graphics
![Page 97: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/97.jpg)
Geometric meaning of weights
101Computer Graphics
![Page 98: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/98.jpg)
NURBS describe a circle: example
102Computer Graphics
R0R6R1
R2
R3
R4
R5
Three 120°circular arc describe circle :
u =[0 0 0 1 1 2 2 3 3 3]
k = 3
[ωi] = [1, ½, 1 , ½, 1, ½, 1]
控制顶点分布如右图所示
![Page 99: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/99.jpg)
Outline
• Interpolation and Approximation
• Curve Modeling• Parametric curve
• Cubic Hermite interpolation
• Bézier curve
• B-Spline
• Surface Modeling• Bézier surface
103Computer Graphics
![Page 100: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/100.jpg)
Bézier surface
• Bézier surfaces are a species of mathematical spline used in
computer graphics, computer-aided design, and finite element
modeling.
• As with the Bézier curve, a Bézier surface is defined by a set of control points.
104Computer Graphics
![Page 101: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/101.jpg)
Bézier surface
• 曲面表示方法与参数区域的选择有着密切的关系,若选择
矩形参数区域,一般采用张量积或布尔和形式来构造曲面;
若选择三角形(即单纯形)参数区域,则要采用直接升阶
构造方法来表示曲面。
105Computer Graphics
![Page 102: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/102.jpg)
The definition of Bézier surface in rectangular domain
• 当选定矩形参数区域 0, 1 × [0, 1]后,则采用张量积(tensor product)
方法把 Bézier curve 推广成 Bézier surface。
• 给定了 𝑛 + 1 𝑚 + 1 个空间上顶点𝑃𝑖𝑗 𝑖 = 0, 1, … , 𝑛; 𝑗 = 0, 1, … ,𝑚 ,
则称𝑛 ×𝑚次参数曲面为𝑛 ×𝑚次Bézier曲面,有:
• 这里𝐵𝑖,𝑛(𝑢)和𝐵𝑗,𝑚 𝑢 为Bernstein基函数,依次用线段连接顶点
𝑃𝑖𝑗 𝑖 = 0, 1, … , 𝑛; 𝑗 = 0, 1, … ,𝑚 中相邻两顶点所形成的空间网格,称为
Bézier曲面的特征网格。
106Computer Graphics
![Page 103: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/103.jpg)
Biquadratic Bézier surface
• 当𝑛=𝑚=2时,有biquadratic Bézier surface (双二次曲面):
• 该曲面的4条边界曲线都是抛物线,实际上其特征网格上的9个顶点,其中有8
个边界顶点来确定4条边界曲线。
• 只有一个顶点𝑃11可以用来控制曲面的形状,因此曲面的凹凸可以通过控制𝑃11来直观控制。
107Computer Graphics
![Page 104: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/104.jpg)
• 当𝑛=𝑚=3时,有bicubic Bézier surface (双三次曲面):
• 有矩阵表示:
• 进一步简化:
• 其中:
Bicubic Bézier surface
108Computer Graphics
![Page 105: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/105.jpg)
Bicubic Bézier surface
• 曲面的4条边界都是三次Bézier
曲线,由周边12个特征网格的
顶点来确定。可通过调整内部
4个顶点𝑃11, 𝑃12, 𝑃21, 𝑃22
的位置来控制曲面内部的形状。
109Computer Graphics
![Page 106: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/106.jpg)
Utah Teapot
![Page 107: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/107.jpg)
Bézier surface in triangular domain
• 当采用三角形参数区域 𝑢, 𝑣, 𝑤 𝑢, 𝑣, 𝑤 ≥ 0, 𝑢 + 𝑣 + 𝑤 = 1 后,需要选
择B-网的方法来构造Bézier 曲面。
• 对于不共线的三个顶点𝑃0, 𝑃1, 𝑃2就可以形成一个三角形,因此三角形
组成的平面上任意一点𝑃可以表示成:
• 其中:(𝑢, 𝑣, 𝑤)称为𝑃(𝑢, 𝑣, 𝑤)关于𝑃0, 𝑃1, 𝑃2的重心坐标。
• 当0 ≤ 𝑢 + 𝑣 + 𝑤 ≤ 1时, 𝑃(𝑢, 𝑣, 𝑤)位于
𝑃0, 𝑃1, 𝑃2组成的三角形之内。
111Computer Graphics
![Page 108: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/108.jpg)
The definition of Bézier surface in triangular domain
• 定义:参数曲面为三角域上的𝑛次Bézier曲面:
• 其中:
112Computer Graphics
![Page 109: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/109.jpg)
Quadratic Bézier surface
• 当n=2时,可以直接写出二次Bézier曲面
• 从上式中可以看出,二次Bézier曲面
完全由6个边界顶点确定,因此,其
形状完全由边界曲线所控制。
113Computer Graphics
![Page 110: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/110.jpg)
Cubic Bézier surface
• 三次Bézier曲面为:
• 若选定了三次Bézier曲面的9个
边界顶点,其内部形状就可由
一个控制顶点𝑃111来交互改变。
114Computer Graphics
![Page 111: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/111.jpg)
Non-uniform rational B-spline (NURBS) surface
• Non-uniform rational basis spline (NURBS) is a mathematical
model commonly used in computer graphics for generating and
representing curves and surfaces.
115Computer Graphics
![Page 112: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/112.jpg)
Least square surface
• If you have a data set (𝑥1, 𝑦1, 𝑧1), (𝑥2, 𝑦2, 𝑧2) , ... , (𝑥𝑛, 𝑦𝑛, 𝑧𝑛) and
the best surface 𝑧 = 𝑓(𝑥, 𝑦) should be with the property as
follows
116Computer Graphics
2
1
)),(( i
n
i
ii zyxfE
Minimum Least Square error
![Page 113: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/113.jpg)
The continuity of the curve and surface
• 𝐺𝑛是两个几何对象间的实际连续程度,用于表示实际物理连续性;而
𝐶𝑛是实际物理连续性的数学表达,几何连续性𝐺𝑛没有数学(参数)连
续性𝐶𝑛严格。 𝐺𝑛的连续性是独立于表示(参数化)的。
117Computer Graphics
![Page 114: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/114.jpg)
The continuity of the curve and surface
• 𝐶0 −意味着两个相邻段间存在一个公共点(即两个段相连)。
• 𝐶1 −对应于曲线方程的1阶导数,即意味着有一个公共点,并且多项式
的一阶导数(即切向矢量)是相同的。
• 𝐶2 −对应于曲线方程的2阶导数,意味着一阶导数和二阶导数都相同。
118Computer Graphics
![Page 115: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/115.jpg)
The continuity in real world
119Computer Graphics
![Page 116: Curve and Surface Modeling - GitHub Pages](https://reader030.fdocuments.in/reader030/viewer/2022011923/61d8ad7e071ce300912a16bf/html5/thumbnails/116.jpg)
Simplified cases
120Computer Graphics