计算机图形学 曲线和曲面 算法

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

5.1.3 Bezier曲线 Bezier曲线
Q(t ) = [x(t ) = t y ( t ) z ( t )] = T * M B * G B −1 3 − 3 3 −6 3 t 1 * − 3 3 0 0 0 1 1 P 1 P 0 2 * 0 P3 0 P4
G1 g1x G g 2x G = 2 = G3 g 3 x G4 g 4 x g1 y g2 y g3 y g4 y g1z g2z g3z g4z
Q(t ) = [x(t )
G1 g1 x G g 2x G = 2 = G 3 g 3 x G 4 g 4 x
y (t ) z (t )] = t 3
g1 y g2 y g3 y g4 y g1 z g2z g3z g4z
[
t2
m11 m t 1 21 m31 m41
]
m12 m22 m32 m42
m13 m23 m33 m43
m14 G1 m24 G2 m34 G3 m44 G4
5.1.3 Bezier曲线 Bezier曲线
Q(t ) = T * M H * GH = T * M H * ( M HB * GB ) = T * ( M H * M HB ) * GB = T * M B * GB
M B = M H * M HB −1 3 − 3 3 −6 3 = − 3 3 0 0 0 1 1 0 0 0
如何确定曲线的约束条件
Q(t ) = [x(t ) y ( t ) z ( t )] = T * C
拆分 C = M * G
G 为四个元素的几何约束行向量矩阵
M 为基矩阵
m11 m 21 m31 m41 m12 m22 m32 m42 m13 m23 m33 m43 m14 m24 m34 m44
3 2
0 ≤ t ≤1
令 T = [t 3
ax b x C= cx d x ay by cy dy
t2
t 1
]
则系数矩阵 曲线 x(t) = axt3 +bxt 2 + cxt + dx
y(t) = ayt3 +byt 2 + cyt + dy z(t) = azt3 +bzt 2 + czt + dz 0 ≤ t ≤1
5.1.3 Bezier曲线 Bezier曲线
G B = [P1 P2 P3
1 0 = − 3 0
P4 ]
0
T
R1 = Q' (0) = 3( P2 − P ) R4 = Q ' (1) = 3( P4 − P3 ) 1
GH = [P 1
P2
R1
R4 ]
T
0 P 1 0 0 1 P2 = M HB * GB 3 0 0 P3 0 − 3 3 P4 0
曲线是几何矩阵中约束元素的加权和。每个权 曲线是几何矩阵中约束元素的加权和。 的三次多项式,称为调和函数, 都是关于 t 的三次多项式,称为调和函数,记 为
B =T *M
于是
Q (t ) = B * G
5.1.2 Hermite 曲线
由端点P1、P4和端点处切向量R1、R4的约束确 由端点P 和端点处切向量R 定 ,其几何矩阵为
x ' ( t ) = 3t 2
x ( 0 ) = P1 x = [ 0
0 1
0 1
1 ]* M
1] * M
H H
* G Hx * G Hx
x ' ( 0 ) = R 1 x = [0 x ' (1) = R 4 x = [3
[
2t 1 0 * M H * G Hx
]
0 2
1 1
0 ]* M
0 ]* M
P1
P4
P4点切向量R4,每条曲线的大小方向 都相同; P1点的切向量R1的方向相 同,大小不同。R1越大,曲线越高
两段Hermite曲线 两段Hermite曲线 Hermite
G1
连续
P4 P 1 P P 4 and 7 kR4 R1 R4 R7
高次函数一般有三种表示方法
直接将y 表示成x 直接将y和z表示成x的显函数 y = f(x), z = g(x) f(x,y,z) = 0 的隐式方程 曲线的参数表示 x = x(t) ,y = y(t), z = z(t)
为什么参数曲线次数为3 为什么参数曲线次数为3?
低于三次的函数控制曲线形状时不够灵活, 低于三次的函数控制曲线形状时不够灵活,高 于三次的曲线会增加不必要的摆动其增加计算 量。
5.1.4 B样条曲线 B样条曲线
B样条通常用m +1个控制点 样条通常用m +1个控制点 (P0、P1、…Pm)产生m-2个曲线段 P 产生m 3。 (Q3、Q4、…Qm), m >= 3。 Q 样条曲线一般不过控制点。 B样条曲线一般不过控制点。
三次参数曲线是三维空间中次数最低的 非平面曲线。 非平面曲线。 高于3 高于3次的曲线还是有应用的
5.1.1 3次参数曲线的基本特征 3次参数曲线的基本特征
Q(t ) = [x(t )
3
y ( t ) z ( t )]
2
T
x(t ) = a x t + bx t + c x t + d x y (t ) = a y t 3 + b y t 2 + c y t + d y z (t ) = a z t + bz t + c z t + d z
3 2 2
P = [2t
2
[
3
− 3t + 9t + 17, 3t − 3t − 3t + 5
2 3 2
]
]
曲线与约束的关系
曲线段可以用端点、切向量和曲线段之间的连 曲线段可以用端点、 续性等约束条件来定义 两个端点和两端点处的切向量定义Hermite Hermite曲 两个端点和两端点处的切向量定义Hermite曲 线; 两个端点和另外两个控制端点切向量的点定义 Bezier曲线 曲线; 的Bezier曲线; 由四个控制顶点定义的样条曲线。 由四个控制顶点定义的样条曲线。
−2 3 0 0 1 −2 1 0 1 − 1 0 0
M
H
2 − 3 = 0 1
Q(t ) = [x(t )
y ( t ) z ( t )] = T * M H * G H = t 3
[
t2
1 P 2 −2 1 1 − 3 3 − 2 − 1 P * 4 t 1 0 0 1 0 R1 1 0 0 0 R4
[
3
t
2
]
5.1.3 Bezier曲线 Bezier曲线
Q(t ) = (1 − t )3 P + 3t (1 − t ) 2 P2 + 3t 2 (1 − t ) P3 + t 3 P4 1
BB = (1 − t )3 3t (1 − t )2
[
3t 2 (1 − t ) t 3
]
5.1.3 Bezier曲线 Bezier曲线
az bz cz dz
写成
Q (t ) = [ x (t )
y ( t ) z ( t )] = T * C
曲线的导数表示曲线的切向量
d d Q(t ) = Q' (t ) = (T * C ) dt dt = 3t
[
2
2t 1 0 * C
]
曲线段之间的连续性
几何连续G 与参数连续C 几何连续Gi 与参数连续Ci 连续(C 两条曲线段拼接成一条曲线。 G0 连续(C0):两条曲线段拼接成一条曲线。 G1连续: 两条曲线段拼接点处切向量方向相 连续: 若相等(方向、大小)- )-C 同。若相等(方向、大小)-C1 连续: Gn连续:两条曲线段拼接点处切向量的阶导 数方向相同。 数方向相同。 n阶导数相等 -Cn
H H
* G Hx * G Hx
P 0 1 P 1 2 = G = Hx P3 0 3 P4 x
0 1 = 0 3 0 1 0 2 0 1 1 1
0 1 0 2
1 1 0 0
−1
0 1 1 1
1 1 * M H * GHx 0 0
R1和R4的方向可直观 R1和R4的方向可直观 看出, 看出,便于控制曲线 形状。 形状。 两段Bezier曲线, Bezier曲线 两段Bezier曲线,当 P4 – P3 = k(P5 - P4) 时(三点相异且共 线), k >0 端点连 接处是连续的。 接处是连续的。如果 ,则连续 则连续。 k = 1 ,则连续。
x (t ) = T * M * G 展开
x(t ) = (t 3m11 + t 2m21 + tm31 + m41 )g1x + (t 3m12 + t 2m22 + tm32 + m42 )g2 x + (t 3m13 + t 2m23 + tm33 + m43 )g3x + (t 3m14 + t 2m24 + tm34 + m44 )g4 x
k >0
绘图过程 给定两个端点和端点处切向量,利用M 给定两个端点和端点处切向量,利用M矩 1,计算中间点P 阵, t = 0 : step : 1,计算中间点P, 依次连线, 依次连线, 构成最后曲线
5.1.3 Bezier曲线 Bezier曲线
通过给定两个不在曲 线上的中间点来间接 地确定端点切向量
曲线和曲面的表示
西安电子科技大学 计算机学院
5.1 三次参数曲线
曲线和曲面可以用折线和多边形进行一次线性 逼近,为了达到一定精度, 逼近,为了达到一定精度,需要生成和存储大 量的顶点坐标,数据的交互繁琐。 量的顶点坐标,数据的交互繁琐。 所以,一般使用结构更紧凑、 所以,一般使用结构更紧凑、更易于控制的分 段光滑曲线(曲面)表示- 段光滑曲线(曲面)表示-比线性更高次的函 存储空间更少,更易于控制。 数,存储空间更少,更易于控制。
5.1.3 Bezier曲线 Bezier曲线
曲线段一定落在P1、P2、P3、P4定义的凸多边 曲线段一定落在P1、P2、P3、P4定义的凸多边 P1 凸壳) 形(凸壳)内。 如果调和函数非负且其和为1 如果调和函数非负且其和为1,且三次曲线对 所有控制点做加权求和而定义, 所有控制点做加权求和而定义,凸壳特性对曲 线成立。 线成立。 给定四个控制点P1(0,0,0) P1(0,0,0)、 1)、 给定四个控制点P1(0,0,0)、P2(1, 1, 1)、 P3(2,-1,-1)、P4(3,0,0),构造Bezier曲线, Bezier曲线 P3(2,-1,-1)、P4(3,0,0),构造Bezier曲线, 并计算t 1/3, 2/3处的 并计算t = 0 , t = 1, t = 1/3,t= 2/3处的 值。
p2 p1
Q1 Q2 Q3 Q1、Q2有C1和G1 、 有 连续, 、 只 连续,Q1、Q3只 有G1连续
p0
例2:证明如下的两条三次曲线段达到 2 :证明如下的两条三次曲线段达到C 连续,并画出两条曲线段。 连续,并画出两条曲线段。
P1 = − 2 t + 3t + 9 t + 7, − 3t + 3t + 5
GH = [P1
G Hx = [P1
P4
R1
R
T 4 x
]
x(t) =axt +bxt +cxt +dx =T*Cx =T*MH *GHx = t t t 1*MH *GHx
3 2 3 2
[
]
t = 0、代入,得到其P x、P4 x约束: 1 1
x (1 ) = P4 x = [ 1
]
Q ( t ) = BH * G H = ( 2t 3 − 3t 2 + 1) P + ( −2t 3 + 3t 2 ) P4 + (t 3 − 2t 2 + t ) R1 + (t 3 − t 2 ) R4 1
Hermite 曲线完全 插值控制点( 插值控制点(2个, P1、P4)。 )。切向量对 P1、P4)。切向量对 曲线的影响如图 两段Hermite Hermite连接连 两段Hermite连接连 续,可以轻易实现连 续。
相关文档
最新文档