curve and surface modeling - github pages

116
Curve and Surface Modeling Teacher: A.Prof. Chengying Gao (高成英) E-mail: [email protected] School of Data and Computer Science Computer Graphics

Upload: others

Post on 08-Jan-2022

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Curve and Surface Modeling - GitHub Pages

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

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

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

Introduction

4Computer Graphics

Page 5: Curve and Surface Modeling - GitHub Pages

Introduction

5Computer Graphics

Surface fitting to 3D points Chart by Microsoft Excel

Page 6: Curve and Surface Modeling - GitHub Pages

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

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

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

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

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

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

• 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

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

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

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

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

Least square line

• When n = 2, E = 0

17Computer Graphics

(x1,y1)

(x2,y2)

Page 18: Curve and Surface Modeling - GitHub Pages

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

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

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

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

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

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

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

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

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

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

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

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

Classification of curves

31Computer Graphics

Page 31: Curve and Surface Modeling - GitHub Pages

Classification of curves

32Computer Graphics

Page 32: Curve and Surface Modeling - GitHub Pages

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

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

Parametric curves

37Computer Graphics

Page 35: Curve and Surface Modeling - GitHub Pages

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

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

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

Least square parametric curve

41Computer Graphics

Page 39: Curve and Surface Modeling - GitHub Pages

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

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

Spline in industry

44Computer Graphics

Page 42: Curve and Surface Modeling - GitHub Pages

Interpolation

45Computer Graphics

• Goal: interpolate values

Page 43: Curve and Surface Modeling - GitHub Pages

Nearest neighbor interpolation

46Computer Graphics

Problem: values not continuous

Page 44: Curve and Surface Modeling - GitHub Pages

Linear interpolation

47Computer Graphics

Problem: derivatives not continuous

Page 45: Curve and Surface Modeling - GitHub Pages

Smooth interpolation?

48Computer Graphics

Smooth curveNN interpolation Linear interpolation

20 x 20 pixel

Page 46: Curve and Surface Modeling - GitHub Pages

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

Cubic Hermite Interpolation

• Assume Cubic polynomial

• Solve for coefficients:

50Computer Graphics

Page 48: Curve and Surface Modeling - GitHub Pages

Cubic Hermite Interpolation

• Cubic polynomial

• Solve for coefficients:

51Computer Graphics

Page 49: Curve and Surface Modeling - GitHub Pages

Matrix Representation of Solution

52Computer Graphics

Page 50: Curve and Surface Modeling - GitHub Pages

Solve for a, b, c, d

• Matrix Inverse

53Computer Graphics

Page 51: Curve and Surface Modeling - GitHub Pages

Matrix Transpose

54Computer Graphics

Page 52: Curve and Surface Modeling - GitHub Pages

Matrix Representation of Polynomials

• Cubic polynomial

55Computer Graphics

t0=1

Page 53: Curve and Surface Modeling - GitHub Pages

Insert identity matrix

56Computer Graphics

Page 54: Curve and Surface Modeling - GitHub Pages

Change Basis

57Computer Graphics

Page 55: Curve and Surface Modeling - GitHub Pages

Hermite Basis Functions

58Computer Graphics

Page 56: Curve and Surface Modeling - GitHub Pages

Hermite Basis Functions

59Computer Graphics

Page 57: Curve and Surface Modeling - GitHub Pages

Hermite Basis Functions

60Computer Graphics

Page 58: Curve and Surface Modeling - GitHub Pages

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

Case

• The derivatives and the shape of Hermite curves

62Computer Graphics

Page 60: Curve and Surface Modeling - GitHub Pages

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

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

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

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

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

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

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

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

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

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

The properties of Bézier curve

• 1. 端点性质:当𝑡 = 0和𝑡 = 1时,有:

• 这说明,Bézier曲线通过特征多边形的起点和终点。

74Computer Graphics

Page 71: Curve and Surface Modeling - GitHub Pages

The properties of Bézier curve

• 2. 对称性:由于𝐵𝑖,𝑛(𝑡) = 𝐵𝑛−𝑖,𝑛 1 − 𝑡 ,如果将控制点的顺序颠倒过来,

记𝑃𝑖∗ = 𝑃𝑛−𝑖,则根据Bézier曲线的定义可推出:

• 这说明,只要保持特征多边形的顶点位置不变,但顺序颠倒,所得的

新的Bézier曲线形状不变,只是参数变化的方向相反。

75Computer Graphics

Page 72: Curve and Surface Modeling - GitHub Pages

The properties of Bézier curve

• 凸包性:由于当𝑡 ∈ [0,1]时,Bernstein多项式之和为:

• 且有

• 则说明𝐵𝑖,𝑛(𝑡)构成了Bézier曲线的一组权函数,所以Bézier

曲线一定落在其控制多边形的凸包之中。

76Computer Graphics

Page 73: Curve and Surface Modeling - GitHub Pages

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

Implementation – Cubic Bézier curve

78Computer Graphics

Page 75: Curve and Surface Modeling - GitHub Pages

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

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

B-Spline Curve

81Computer Graphics

Page 78: Curve and Surface Modeling - GitHub Pages

B-Spline Curve

82Computer Graphics

Page 79: Curve and Surface Modeling - GitHub Pages

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

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

B-splines Basis

85Computer Graphics

Page 82: Curve and Surface Modeling - GitHub Pages

B-splines Basis

86Computer Graphics

Page 83: Curve and Surface Modeling - GitHub Pages

B-splines Basis Vs. Bernstein

87Computer Graphics

Page 84: Curve and Surface Modeling - GitHub Pages

Cubic B-Splines

Page 85: Curve and Surface Modeling - GitHub Pages

Cubic B-Splines

Page 86: Curve and Surface Modeling - GitHub Pages

Cubic B-Splines

Page 87: Curve and Surface Modeling - GitHub Pages

Cubic B-Splines

Page 88: Curve and Surface Modeling - GitHub Pages

Cubic B-Splines

Page 89: Curve and Surface Modeling - GitHub Pages

Cubic B-Splines

Page 90: Curve and Surface Modeling - GitHub Pages

Kinds of B-Spline

94Computer Graphics

Page 91: Curve and Surface Modeling - GitHub Pages

Kinds of B-Spline

95Computer Graphics

Page 92: Curve and Surface Modeling - GitHub Pages

Kinds of B-Spline

96Computer Graphics

Page 93: Curve and Surface Modeling - GitHub Pages

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

Why Introduces to NURBS?

98Computer Graphics

抛物线 椭圆(上)与圆(下) 双曲线

Page 95: Curve and Surface Modeling - GitHub Pages

Definition of NURBS Curve

99Computer Graphics

Page 96: Curve and Surface Modeling - GitHub Pages

Propertise of NURBS Curve

100Computer Graphics

Page 97: Curve and Surface Modeling - GitHub Pages

Geometric meaning of weights

101Computer Graphics

Page 98: Curve and Surface Modeling - GitHub Pages

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

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

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

Bézier surface

• 曲面表示方法与参数区域的选择有着密切的关系,若选择

矩形参数区域,一般采用张量积或布尔和形式来构造曲面;

若选择三角形(即单纯形)参数区域,则要采用直接升阶

构造方法来表示曲面。

105Computer Graphics

Page 102: Curve and Surface Modeling - GitHub Pages

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

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

• 当𝑛=𝑚=3时,有bicubic Bézier surface (双三次曲面):

• 有矩阵表示:

• 进一步简化:

• 其中:

Bicubic Bézier surface

108Computer Graphics

Page 105: Curve and Surface Modeling - GitHub Pages

Bicubic Bézier surface

• 曲面的4条边界都是三次Bézier

曲线,由周边12个特征网格的

顶点来确定。可通过调整内部

4个顶点𝑃11, 𝑃12, 𝑃21, 𝑃22

的位置来控制曲面内部的形状。

109Computer Graphics

Page 106: Curve and Surface Modeling - GitHub Pages

Utah Teapot

Page 107: Curve and Surface Modeling - GitHub Pages

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

The definition of Bézier surface in triangular domain

• 定义:参数曲面为三角域上的𝑛次Bézier曲面:

• 其中:

112Computer Graphics

Page 109: Curve and Surface Modeling - GitHub Pages

Quadratic Bézier surface

• 当n=2时,可以直接写出二次Bézier曲面

• 从上式中可以看出,二次Bézier曲面

完全由6个边界顶点确定,因此,其

形状完全由边界曲线所控制。

113Computer Graphics

Page 110: Curve and Surface Modeling - GitHub Pages

Cubic Bézier surface

• 三次Bézier曲面为:

• 若选定了三次Bézier曲面的9个

边界顶点,其内部形状就可由

一个控制顶点𝑃111来交互改变。

114Computer Graphics

Page 111: Curve and Surface Modeling - GitHub Pages

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

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

The continuity of the curve and surface

• 𝐺𝑛是两个几何对象间的实际连续程度,用于表示实际物理连续性;而

𝐶𝑛是实际物理连续性的数学表达,几何连续性𝐺𝑛没有数学(参数)连

续性𝐶𝑛严格。 𝐺𝑛的连续性是独立于表示(参数化)的。

117Computer Graphics

Page 114: Curve and Surface Modeling - GitHub Pages

The continuity of the curve and surface

• 𝐶0 −意味着两个相邻段间存在一个公共点(即两个段相连)。

• 𝐶1 −对应于曲线方程的1阶导数,即意味着有一个公共点,并且多项式

的一阶导数(即切向矢量)是相同的。

• 𝐶2 −对应于曲线方程的2阶导数,意味着一阶导数和二阶导数都相同。

118Computer Graphics

Page 115: Curve and Surface Modeling - GitHub Pages

The continuity in real world

119Computer Graphics

Page 116: Curve and Surface Modeling - GitHub Pages

Simplified cases

120Computer Graphics