计算机图形学第8讲曲线曲面

  • 格式:ppt
  • 大小:4.33 MB
  • 文档页数:120

下载文档原格式

  / 120
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7
参数曲线基础


曲线的表示形式

非参数表示和参数表示
非参数表示

显式表示
坐标间建立函数关系 不能建立多值曲线
y f ( x) z g( x )

隐式表示
看做是两曲面的交 坐标变量间可以多对1
2 2 x y 9 z0
f ( x , y, z ) 0 g( x , y , z ) 0
P' (t0 ) P' (t0 )
记为:


0为任一常数
23
G1
参数曲面

曲面参数表示
x x(u , v) y y (u , v), u , v [0,1] [0,1] z z (u , v)
曲面上的点 P (u0 , v0 ) 曲面上的切向量 Pu (u0 , v0 ) Pv (u0 , v0 ) 曲面上的法向量 N (u0 , v0 ) Pu (u0 , v0 ) Pv (u0 , v0 ) 角点 P (0,0), P (0,1), P (1,1), P (1,0)
t [0,1]
27
参数多项式曲线

矩阵表示

矢量表示
x ( t ) x 0 y P (t ) y ( t ) 0 z(t ) z0 x1 y1 z1

加权和形式
P(t ) CT P0 tP1 t n Pn
1 xn t yn CT zn n t
2
对两边求导 2Bs Bs 0 B'与N平行 Bs N s ( s) lim s 0 s
度量曲线的扭曲程度
B'与B垂直
20
切矢量、法矢量、曲率和绕率
N s Bs T s

两边求导后 N s T s Bs
对正则曲线,定义弧长:
n t n n 0
百度文库
s (t ) lim L(n) lim Pi 1 Pi
i 1 2
dP(t ) dt dt
2 2
dP(t ) dx(t ) dy (t ) dz (t ) 其中 = dt d t d t d t
13
切矢量、法矢量、曲率和绕率

弧长参数表示
s
t
0
dP(t ) dt dt
ds dP(t ) 0 dt dt s s (t )是关于参数 t 的单调函数 s s (t )存在反函数 曲线 P P(t )可以用弧长参数表示为 P P( s )
14
切矢量、法矢量、曲率
控制顶点 Gij MUU、MVV 分别确定了两组基函数 Bi ,m u B j ,n v

G00 G 10 Gm 0
G01 G0 n G01 G1n Gm1 Gmn
P(u, v) U C V Gij Bi ,m u B j ,n v , u, v 0,1 0,1


密切平面( osculating plane)
T、N构成 B、T构成 N、B构成
17
切平面
切平面(tangent plane)


法平面(normal plane)

切矢量、法矢量、曲率和绕率
18
切矢量、法矢量、曲率和绕率

曲率(curvature)

曲线的弯曲程度
k ( s) lim s 0 s

形式
P(t ) U TC V Piju i v j , u, v 0,1 0,1
i 0 j 0 m n
31
参数多项式曲线
参数多项式曲面的矩阵表示
矩阵表示
矩阵分解
T C ΜU GΜ V T P (t ) U T Μ U GΜ V V
几何矩阵
T i 0 j 0
m
n
32
参数多项式曲线

生成方法

流程:P(t)=P0+P1t + … + Pn t n 参数离散
t
n i 0
连接型值点
n Pi 0
计算型值点
折线
计算一个型值点的运算量 乘法:n(n+1)/2次 加法:n次
t [0, 1]
33
参数多项式曲线

参数多项式曲线的生成(续)
T s
16
切矢量、法矢量、曲率和绕率

法矢量(normal vector)
P (t ) P (t ) B | P (t ) P (t ) | P (t ) P (t ) P (t ) N | P (t ) P (t ) | P (t )
15
切矢量、法矢量、曲率和绕率

dP dP dt Pt T ( s) ds dt ds Pt | T ( s) |2 1
法矢量
对等式两边求导后有 2T s T s 0



与 T s 垂直 主法矢量(normal) T ( s) N ( s) | T ( s) | 副法矢量(binormal) N ' ( s) B(s) | N ( s) |

曲率半径 1 p( s ) k( s)
P(s)点处的曲率
19
切矢量、法矢量、曲率和绕率

绕率(Torsion)
Bs T s 0
对两边求导 Bs T s Bs T s 0 Bs T s 0 B'与T垂直
B s 0
电话 人脸 赛车

4
为什么要研究曲线与曲面
5
为什么要研究曲线与曲面

使用曲面曲线的好处

控制物体形状
建模 修改


保证光滑与连续性 可导性 易于绘制
6
主要内容
参数曲线基础 参数多项式曲线 三次Hermite曲线 Bezier曲线 Bezier曲面 OpenGL相关函数

24
参数连续性与几何连续性

几何连续性(续)

2阶几何连续*
称曲线

P=P(t) 在 t=t0 处2阶几何连续,如果它在 t0 处
(1) G1 (2)副法矢量方向连续
B(t0 ) B(t0 )

(3)曲率连续
k (t0 ) k (t0 )
25
曲线与曲面



1
t
t 反映了P 在 P0P1 间的相对位臵 x x0 t x1 x0
x R cos 0 [ 0 , 360 ] y R sin θ反映了半径与 X 轴的夹角
10

如:圆
P(θ)
曲线的表示形式

参数表示的优点

容易确定曲线边界。由参数区间确定 表示形式不变性。不依赖于坐标系的选取 表示能力强。利于控制点来控制曲线形状,如后面将要学 到的Bezier曲线
8
曲线的表示形式

参数表示

参数方程
x x( t ) y y ( t ), z z(t )
t [a , b ]

参数表示的矢量表示
t
规范到[0,1]:
ta t ba
y, z]T , P(t)=[x(t), y(t), z(t)]T
矢量表示:P=[x,

参数曲线基础 参数多项式曲线 三次Hermite曲线 Bezier曲线 Bezier曲面 OpenGL相关函数
26
参数多项式曲线

为什么采用参数多项式曲线?


表示最简单 理论和应用最成熟

n次多项式曲线
n x ( t ) x x t x t 0 1 n n y ( t ) y y t y t 0 1 n z (t ) z z t z t n 0 1 n
30
P0
参数多项式曲面

矩阵表示

矢量表示
G00 x(t ) G 1 u u m 10 P(t ) y ( t ) z (t ) Gm 0


G01 G0 n 1 v G01 G1n U TC V Gm1 Gmn v n
P P(t )
t
t [0,1]
可以表示时间、角度等量
9
曲线的表示形式

如:直线方程的矢量表示
P(t) P0 0
t x x0 x1 x0
P1
P P0 ( P1 P0 )t
t [0,1] t [0,1]
x x0 ( x1 x0 )t y y0 ( y1 y0 )t
11
切矢量、法矢量、曲率和绕率

位臵矢量

矢量表示: P=P(t), 0≤t≤1 参数方程

导数
x x(t ) y y (t ), z z (t )
t [0,1]
k k k k d P ( t ) d x ( t ) d y ( t ) d z (t ) T (k ) P (t ) [ , , ], k k k k dt dt dt dt

记为Cn
22
参数连续性与几何连续性

几何连续性

直观的、易于交互控制的连续性 0阶几何连续
称曲线P=P(
臵连续,即
记为:G0
t ) 在 t=t0 处0阶几何连续,如果它在 t0 处位
P( t 0 ) P( t 0 )



1阶几何连续
称曲线 P=P(t) 在 t = t0 处1阶几何连续,如果它在 t0处 GC0 ,并且切矢量方向连续,即

Horner迭代算法
令 Rn ( t ) Pn Rk ( t ) tRk 1 ( t ) Pk , 结果:P ( t ) R0 ( t )
Frenet–Serret 公式
21
参数连续性与几何连续性

参数连续性

传统的、严格的连续性 曲线 P = P(t)在 t=t0 处n阶参数连续,如果它在 t0 处n 阶左右导数存在,并且满足
d k P(t ) d k P(t ) , k 0,1,, n k k dt t t0 dt t t0
t [0,1]
Ferguson curve

缺点
Pi
没有明显的几何意义 Pi 与曲线的关系不明确,导致曲线的形状控制困难
28
参数多项式曲线
参数多项式曲线的矩阵表示
矩阵表示
矩阵分解
C GΜ P(t ) GΜT
几何矩阵
G = [G0 G1 … Gn] 控制顶点 Gi 基矩阵M:MT 确定了一组基函数 Bi t n P (t ) CT Gi Bi t t [0,1]

单位切矢量
dP( s ) 记T(s)为P=P(s)上任意一点的切矢量。 T [ s ] ds 则T(s)为单位切矢量
s
t
0
dP(t ) dt dt
ds dP(t ) dt dt dP( s ) dP( s (t )) dt dP(t ) dt / / 1 ds dt ds dt dP(t )
曲线与曲面 (Curves and Surfaces)
1
本章目标


曲线的表示方法
重点掌握Bezier曲线

学会使用OpenGL的函数
2
为什么要研究曲线与曲面
计算机图形学两大基本任务
建模
绘制
3
为什么要研究曲线与曲面

建立复杂模型

一个球面
x2 y 2 z 2 R

复杂曲面
k 0,1,
正则点:k=1时,对t=t0,P'(t0)≠0 正则曲线:所有点是正则点
12
切矢量、法矢量、曲率和绕率

切矢量(tangent vector)


弧长

参数 t 递增一个单位时三个坐标变量 的变化量 x' ( t ) dP( t ) P' (t ) y' ( t ) dt z' ( t )
i 0
29
参数多项式曲线

参数多项式曲线的矩阵表示(续)

例子:直线段的矩阵表示
P(t ) P0 (1 t ) P 1t
1 1 1 P0 P 1 t 0 1 GMT
P1
t [0,1]
MT 控制顶点: P0;P0+P1 基函数: 1-t ;t t