917590-计算机图形学5-NEWV
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.4 Bézier曲线曲面
Bézier曲线的定义 • Bézier曲线是由一组控制顶点和Bernstein基函数混
合(blending)得到的曲线.
n
C(t) Pi Bi,n t , t 0,1 i0
其中, Pi (i=0,1,…,n)称为控制顶点; 顺序连接控制顶点生成控制多边形.
Bi,n t Cni ti 1 t ni ,t 0,1 为Bernstein基函数.
3. 对称性: 若保持原全部顶点的位置不变, 只是把次序颠倒过来, 则 新的Bézier曲线形状不变, 但方向相反.
4. 几何不变性: Bézier曲线的位置和形状只与特征多边形的顶点的位 置有关, 它不依赖坐标系的选择.
5.4 Bézier曲线曲面 Bézier曲线的性质(续)
5. Bézier曲线C(t)位于其控制顶点P0, P1, …, Pn的凸包之内;这是由于 Bezier曲线是多边形各顶点P0, P1, …, Pn的加权平均,而权因子 0≤Bi,n(t)≤1.
给定n次Bézier曲线的控制顶点P0, P1, …, Pn, 和参数t, 令:
Pir (t)
(1
t
)
Pi
r
1
(t)
tPi
r 1 1
(t),
其中r
1,..., n; i 0,..., n r Pi0 (u) Pi
则 P0n t 就是n次Bézier曲线上参数为t处的点.
5.4 Bézier曲线曲面
z
o y
[x(u), y(u), z(u)] x
5.1 曲线表示的分类
参数表示的优点
• 可对参数曲线的方程直接进行几何变换,而不需要对曲线 曲面的每个数据点进行几何变换, 如: D(u) = TC(u), T为几何变换矩阵.
• 可以表示一个自变量对应多个应变量的情况. • 应变量个数不限,便于将低维空间中的曲线曲面扩展到高
n
2. 规范性: Bi,n t 1, t 0,1. i0
3. 对称性: 4. 端点性质:
Bi,n t Bni,n 1 t , i 0,1, , n, t 0,1.
1, i 0, Bi,n (0) 0, else;
1, i n, Bi,n (1) 0, else.
5. 最大值: Bi,n(t) 在 t=i/n 处取得最大值.
5.2 参数曲线的微分性质
弧长
• 给值线定,C沿(参u)着上数曲A曲B线线两CC点(u(u)之,)=从间[x点的(uA)弧,=yC(长u()u.,z0)(到u)]点, 参B=数Cu(在u)的曲距线离[u0称,u为1]取曲
• 弧长的微分公式:
(ds)2=(dx)2+(dy)2+(dz)2=((x’)2+(y’)2+(z’)2)d2u
1. 端点性质: Bézier曲线插值端点.
C 0 P0 , C 1 Pn.
2. 端点切矢量性质: Bézier曲线在点P0处与P0P1相切, 在点Pn处与Pn-1Pn相切.
n1
Ct n Pi1 Pi Bi,n1 t , t 0,1; C0 n P1 P0 ,C1 n Pn Pn1 . i0
6. 变差缩减性: 对于平面Bézier曲线C(t),平面内任意直线与其交点的 个数不多于该直线与其控制多边形的交点个数.
5.4 Bézier曲线曲面
几种特殊的Bézier曲线
1. 一次Bézier曲线:C(t) = (1-t)P0+tP1, t∈[0,1], 是一条连接点P0和P1的直线.
矩阵表示为:
其中:
n
n 1
C(t)
Pi Bi,n (t)
PiBi,n1 (t)
i 0
i 0
Pi
n
i
1
P
i
1
(1
n
i
) 1
P
i,
5.4 Bézier曲线曲面
Bernstein基函数的性质(续)
6. 递推性: Bi,n(t) (1 t)Bi,n1(t) tBi1,n1(t), i 0,1,..., n.
7. 可导性: Bi,n(t) n[Bi1,n1(t) Bi,n1(t)], i 0,1,..., n.
8. 升阶公式:
5.2 参数曲线的微分性质
Frenet 标架(续) • 切向量T, 主法向量N和从法向量B互相垂直. • 曲率k(s)=||T’(s)||=||C’’(s)||. • ρ(s) = 1/k(s) 称为曲率半径. • B(s) = T(s) ×N(s). • 切线和主法线决定的平面称为密切平面, 切线和从
法线决定的平面称为从切平面, 主法线和副法线决 定的平面称为法平面.
5.3 参数曲线和隐式曲线的显示方法
参数曲线的显示方法
• 回忆: 参数表示易于得到曲线上的点. • 为了在计算机屏幕上显示一条曲线, 需要将这条曲线离散为一系列点
(像素); 显示这些像素, 用户就在屏幕上看到了一条曲线. • 为了显示参数曲线, 可以先确定参数曲线上的一个点列; 然后连接这个
应变量. • 缺点: 函数式曲线无法表示一个自变量对应多个应
变量的情况.
y
y
y=x2
o
x
o
x
5.1 曲线表示的分类
参数表示
• 参数表示的曲线称为参数曲线. • 参数曲线的表示形式是: 自变量为标量的向量值函
数, C=C(u)=[x(u), y(u), z(u)], 其中每个分量都是一 个函数, 自变量称为参数. • 比较: 曲线的函数式表示, 是自变量为标量的标量 值函数.
Bézier曲线的次数, 就是Bernstein基函 数的次数; Bézier曲线的阶数, 就是控 制顶点的个数. 阶数为次数加1.
5.4 Bézier曲线曲面
5.4 Bézier曲线曲面
Bernstein基函数的性质
Bi,n t Cni ti 1 t ni ,t 0,1
1. 非负性: Bi,n t 0, i 0,1, , n, t 0,1.
1
C
(t )
[t
,1]
1
1 P0
0
P1
2. 二次Bézier曲线:
C(t) (1 t)2 P0 2t(1 t)P1 t2 P2
矩阵表示为:
1 2 1P0
C(t) [t 2 t 1] 2
2
0
P1
1 0 0P2
5.4 Bézier曲线曲面
几种特殊的Bézier曲线(续)
f>0
f<0
5.3 参数曲线和隐式曲线的显示方法
隐式曲线显示方法---跟踪法 • 首先找到一个起点, 从这个起点出发, 跟踪
出曲线附近的一系列点(像素), 显示这些像 素, 就在屏幕上显示出了这条曲线.
5.3 参数曲线和隐式曲线的显示方法
隐式曲线显示方法---跟踪法
• Midpoint algorithm for circle
3. 三次Bézier曲线: C(t) (1 t)3 P0 3t(1 t)2 P1 3t2 (1 t)P2 t3P3
矩阵表示为:
1 3 3 1 P0
C(t) [t3
t2
t
1]
3
6
3
0
P1
3 3
1
0
0 0
0 0
P2 P3
5.4 Bézier曲线曲面
Bézier曲线的求值--- De Casteljau算法
• Implicit Equation f(x,y) = x2 + y2 - R2 • f(x,y) > 0 => point outside circle • f(x,y) < 0 => point inside circle
• Midpoint Criteria • f(n) = f(xp+1, yp - 1/2) = (xp + 1)2 + (yp - 1/2)2 - R2 • d >= 0 choose SE next n: +1 in x, -1 in y • d < 0 choose E next n: +1 in x
• Book keeping • deltaE = dnew - dold = f(xp + 2, yp - 1/2) - f(xp+1, yp
- 1/2) = 2xp + 3 • deltaSE = f(xp + 2, yp - 3/2) - f(xp+1, yp - 1/2) = 2xp
- 2yp + 5 • dstart = f(x0 + 1, y0 - 1/2) = f(1, R - 1/2) = 5/4 - R
Bézier曲线的求值--- 几何作图法
De Casteljau算法可以利用几何作图法实现.
1. 根据给定的参数值 t,在控制多边形的每条边上确定某一分割 点,使分割后的线段之比为 t : (1-t), 得分割点为:
P
1 i
(1 t)P i t P i1,
i
0,1, 2,..., n 1
它们组成一个边数为 n-1 的新的多边形.
维空间中, 如: C(u) = [x1(u),x2(u), …, xn(u)]
y
C(u) = [x0, u]
o
x0
x
5.1 曲线表示的分类
隐式表示 • 隐式表示的曲线称为隐式曲线. • 表示形式: 平面隐式曲线f(x,y)=0, 比如圆x2+y2=36. • 空间隐式曲线表示为联立方程组:
f (x, y, z) 0,
g(x,y, Nhomakorabeaz)
0.
y x2+y2=36
o
x
注意: 函数表示是隐式表示的特特殊形式
5.1 曲线表示的分类
参数表示与隐式表示的比较
• 参数表示易于求值, 隐式表示难于求值. 给定一个参数值, 代入参数方程, 就可以求出这个 参数值对应的参数曲线上的点; 得到隐式曲线上的 点则非常困难.
• 参数表示难于判断内外, 隐式表示易于判断内外. 对于隐式曲线f(x,y)=0, 容易判断那些点在曲线内 部f(x,y)<0, 那些点在曲线外部f(x,y)>0; 但是, 对于 参数曲线, 很难判断它的内部和外部.
5.3 参数曲线和隐式曲线的显示方法
隐式曲线显示方法---分割法 • 首先将屏幕四等分, 保留含有曲线
的部分, 舍弃不含曲线的部分; • 将含有曲线的部分再细分, 保留含
曲线部分, 舍弃不含曲线部分; • 以上操作重复进行, 直到分割到像
素为止.
5.4 Bézier曲线曲面
• Bézier曲线曲面是由法国工程师Pierre Bézier 发明的, 用来进行雷诺汽车的车身设计, 现 在Bézier曲线曲面广泛应用在计算机图形学 中的外形设计, 以及字体表示中.
2. 用相同的方法对该多边形再次分割,得到分割点 Pi2(i 0,1,...n 2) 形成另一个新的多边形;
3.按相同的过程分割n次后, 得到参数值t处的曲线点 P0n
5.4 Bézier曲线曲面
Bézier曲线的升阶:
• 将n次的Bézier曲线表示为n+1次的Bézier曲线, 称为Bézier曲线的 升阶. 升阶后的控制多边形更加贴近Bézier曲线, 即:
点列, 得到一条折线近似这条曲线; 用DDA或Bresenham算法显示这条 折线. 就在屏幕上显示出了这条参数曲线.
5.3 参数曲线和隐式曲线的显示方法 隐式曲线的显示方法 • 回忆: 隐式表示容易判断曲线内外 • 利用隐式表示容易判断曲线内外的特点, 隐 式曲线显示主要有两种方法, 分割法和跟踪 法.
i
(1
t
)
Bi,n
(t
)
(1
n
) 1
Bi
,n1
(t
);
tBi,n (t)
i 1 n 1 Bi1,n1(t);
Bi,n
(t)
(1
n
i
) 1
Bi,n
1
(t
)
i 1 n 1
Bi 1, n 1
(t).
5.4 Bézier曲线曲面
Bézier曲线的性质
n
Bézier曲线 C(t) PiBi,n t, t 0,1 有下列性质: i0
曲线曲面造型
曲线表示的分类 参数曲线的微分性质 参数曲线和隐式曲线的显示方法 Bézier曲线曲面 NURBS曲线曲面 细分曲线曲面
5.1 曲线表示的分类
• 函数式表示 • 参数表示 • 隐式表示 • 参数表示与隐式表示的比较
5.1 曲线表示的分类
函数式表示
• 中学里接触比较多的是函数表示的曲线. • 表示形式为y=f(x), 比如直线y=3x+5. • 函数式曲线的特点是: 一个或多个自变量对应一个
• 弧长的计算公式:
u
u
s ds
x2 y2 z2 du
u0
u0
注意: 以弧长为参数的参数方 程, 称为曲线的自然参数方程.
5.2 参数曲线的微分性质
Frenet 标架 • 给定曲线的自然参数方程C(s), 则切向量 T=C’(s). • 进而, 曲线某点处的Frenet标架为:
其中, T为单位切向量, N单位主法向量, B为 单位副法向量, k为曲率, τ为挠率.