曲线曲面的表示方程分为参数表示和非参数表示。非参数表示分为显式表示和隐式表示。
对于平面曲线,显示表示的一般形式为: y = f ( x ) y=f(x) y=f ( x)
在这个方程中,a 2值的值是对应的,所以显示的方程不能代表闭合或多值曲线
若平面曲线方程表示为 f ( x , y ) = 0 f(x,y)=0 f(x ,y )=0的形式称为隐式表示。隐式表示的好处是很容易判断一个点是否在曲线上
(1)与坐标轴
有关(2)用隐函数表达不直观,画起来也不方便
(3)用显式函数表达多个值的存在性
(4) 会出现斜率无穷大的情况
为了解决2的问题,可以使用参数方程
为了克服上述问题,曲线曲面方程通常以参数的形式表示。假设 t t t 表示参数,
平面曲线上的任意点 P 可表示为: p ( t ) = [ x ( t ) , y ( t ) ] p(t)=[x(t),y(t )] p(t)=[x] (t), y(t)]
空间曲线上任意三维点P可表示为: p ( t ) = [ x ( t ) , y ( t ) , z ( t ) ] p(t)= [x(t) ),y(t),z(t)] p(t)=[] x(t),y(t) ,z(t) 】
等价于笛卡尔分量表示: p ( t ) = x ( t ) i + y ( t ) j + z ( t ) k p(t)=x(t)i+y(t )j+z(t)k p(t)=x( t)i+y(t)j+z(t)k
这样,给定一个 t t t值,就可以得到曲线上一点的坐标
假设该曲线段对应的参数区间为 [ a , b ] [a,b] [a,b] ,即 a ≤ t ≤ b a≤t≤b a≤t≤b 。为了方便间隔,间隔 [ a , b ] [a,b] [a,b] 标准化为 [ 0 , 1 ] [0,1] [0,1],参数变换为:
t ′ = t − a b − a t'=\frac{ t-a} {b-a} t′=b−at −a
当取 t = a t=a t=a, t ′ = 0 t'=0 t ′=0, 当 t = b t=b t=b时, t ′ = 1 t'= 1 t′= 1,这样就实现了区间 [ a , b ] [a,b] [a,b ] 标准化为 [ 0 , 1 ] [0,1] [0,1]
参数曲线一般可写为: p = p ( t ) , t ∈ [ 0 , 1 ] p=p(t),t\in[0,1] p=p(t),tε[0,1]
类似地,曲面可以表示为双参数 u u u 和 v v v
的向量函数$p(u,v)=p(x(u,v),y(u,v),z(u,v))\ \ (u,v)\in[0,1]×[ 0,1]$
最简单的参数曲线是一条直线段,其端点为 P 1 , P 2 P_1,P_2 P1,P 2的直线段 参数方程可表示为:
p ( t ) = p 1 + ( p 2 − p 1 ) t , t ∈ [ 0 , 1 ] p(t)=p_1+(p_2- p_1)t,\ t\in[0,1] p(t)=p1+(p2−p1)t, tε[0] ,1]
在曲线曲面的表示中,参数方程比显式和隐式方程更有优势,主要体现在:
可以满足几何不变性的要求
是指形状的数学表示,其所表示的形状不随所采取的坐标系而变化的性质(后接 x y z xyz xyz) 坐标无关紧要,只与参数有关 t t t)
拥有更大的自由度来控制曲线和曲面的形状
为 y = a x 3 + b x 2 + c x + d y=ax^3+bx^2+cx+d y=ax3+ bx2+cx+d只有 4 个系数控制曲线的形状。
undefined参数表示的三维曲线是有界点集,可以写成参数化的、连续的、单值的数学函数,其形式为:
{ x = x ( t ) y = y ( t ) z = z ( t ) 0 ≤ t ≤ 1 \begin{情况} x=x(t)\\ y=y(t)\\ z=z(t)\ \end{情况} \ \ \ \ \ 0≤t≤1 \\ ⎩⎪⎨⎪⎧x=x (t)y=y(t) )z=z (t) 0≤t≤1
p = p ( t ) t ∈ [ 0 , 1 ] p ′ ( t ) = d P d t p ′ ′ ( t ) = d 2 P d t 2 p=p(t)\ \ \ t\in[0 ,1]\\ p'(t)=\frac{dP}{dt}\ \ \ p''(t)=\frac{d^2P}{dt^2} p=p(t)tε[0,1]p′(t)=dtd P p′′(t)=d t2d2P
曲线上任意点的位置向量可表示为:
p ( t ) = [ x ( t ) , y ( t ) , z ( t ) ] p(t)=[x(t),y(t),z(t)] p(t)=[x() t),y( t),z(t)]
选择弧长 s s s为参数,当 Δ t → 0 \Delta t\to0 时Δt→02。剪切矢量
T = d P d s = lim Δ s → 0 Δ P Δ s 单位向量 T=\frac{dP}{ds}=\lim_{\Delta s\to 0}\frac{\Delta P}{\Delta s}\ \ \ 单位向量 T=dsdP=Δ s→0lim ΔsΔP 单个位矢量数量
根据arc 长微分公式为: ( d s ) 2 = ( d x ) 2 + ( d y ) 2 + ( d z ) 2 (ds)^2=(dx)^2+(dy)^2+(dz) ^2 (ds)2=(d) x)2+(d) y)2+(dz)2
引入参数 t t t,可重写为:
( d s / d t ) 2 = ( d x / d t ) 2 + ( d y / d t ) 2 + ( d z / d t ) 2 = ∣ P ′ ( t ) ∣ 2 T = d P d s = d P d t ⋅ d t d s = P ′ ( t ) ∣ P ′ ( t ) ∣ 即,T 为单位切向量 ( ds/dt)^2 =(dx/dt)^2+(dy/dt)^2+(dz/dt)^2=|P'(t)|^2\\ T=\frac{dP}{ ds}=\frac{ dP}{dt}·\frac{dt}{ds}=\frac{P'(t)}{|P'(t)|}\ \ \ 即T为单位正切矢量 (d s/dt) =(dx/dt)2+(dy/dt)2+(dz /dt)2= ∣P′(t )∣2T=dsdP =d tdP ⋅dsdt =∣P′ (t)∣P′( t) 即T是单个位切割向量 金额
|\frac{\Delta T}{\Delta s}|=\lim_{\Delta s\to0}|\ frac{T(s+\Delta s)-T(s)}{\Delta s}|=\lim_{\Delta s\to 0}|\frac{\Delta \theta}{\Delta s}| k=∣T′∣=Δs→0lim∣ΔsΔT∣= Δs→0lim ∣ΔsT(s+ Δs)−T(s)∣=Δs →0lim∣Δ sΔθ∣
曲率愈,表示曲线的粗糙程度愈
曲率k的倒数 ρ = 1 k \rho=\frac{1}{k} ρ=k1称为曲率半径
曲率半径越大,圆弧越平缓,弯曲程度越平滑
曲率半径越小,圆弧越陡,弯曲程度越陡
法向量是与切向量垂直的支撑
undefined在数学领域指的是:凸曲线和凹曲线的连接点
对于平面曲线,相对平滑的条件为:
具有二阶几何连续性 ( G 2 G^2 G2)
b.没有多余的拐点和奇异点(奇异点)
c.曲率变化小
奇异性:是一个未定义的点,或者在特殊情况下不能完全有序,从而使该点出现在一个异常集合中。例如, f ( x ) = 1 x f(x)=\frac{1}{x} f(x)= x1 中有一个奇点(0,0),因为这里 x = 0 x=0 x=0没有意义
给定 n + 1 n+1 n+1 控制点 P i ( i = 0 , 1 , 2 , . . . . . n ) P_i (i =0,1,2,.....n) Pi(i=0,1,2, .....n) ,然后 n n n 次 贝塞尔曲线 已定义为: 由公式 ( 1 ) (1) (1)可以看出 B e z i r Be齐尔Bez ier 函数是关于 B e r n s t e in Bernstein B 的控制点e rns t ein 基函数的加权和。 贝塞尔曲线
p ( t ) = Σ i = 0 n P i B i , n ( t ) , t ∈ [ 0 , 1 ] ( 1 ) p(t)=\sum_{i=0} ^nP_iB_{i,n}(t),t\in[0,1] \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (1 ) p(t )=i= ΣnPiBi,n( t),tε [0,1] 》 在哪里? (i=0,1,undefined
工程项目中最常用的三倍 B e z i e r 贝塞尔曲线 Bezi er 曲线,遵循两倍 Bezier 贝塞尔曲线 Bezier 曲线,高阶 B ezier 贝塞尔曲线 B ezier 曲线一般很少使用。
性质1.正权性
正性(非负性)+权性
由正性+权性(凸组合)可以推出Bezier曲线的凸包性
样条曲线的凸包性是指其混合函数的凸包性。混合函数的凸包性定义如下: 若将混合函数解释为权重,对于参变量 t 的任意取值,所有权重的和始终为 1, 则曲线的混合函数具有凸包性。若样条曲线的混合函数具有凸包性,相对于不具备此特性的样条曲线,其局部控制更灵敏。
性质2.基性
性质3.递推公式
基函数的递推公式
B i n ( t ) = ( 1 − t ) B i ( n − 1 ) ( t ) + t B i − 1 ( n − 1 ) ( t ) B_i^n(t)=(1-t)B_i^{(n-1)}(t)+tB_{i-1}^{(n-1)}(t) Bin(t)=(1−t)Bi(n−1)(t)+tBi−1(n−1)(t),其中 B 0 0 ( t ) = 1 , B i n ( t ) = 0 若 i ∉ { 0 , . . . , n } B_0^0(t)=1,B_i^n(t)=0若i\notin\{0,...,n\} B00(t)=1,Bin(t)=0若i∈/{0,...,n}
由递推公式 C n m = C n − 1 m + C n − 1 m − 1 C_n^m=C^m_{n−1}+C^{m−1}_{n−1} Cnm=Cn−1m+Cn−1m−1求得。公式推导详见组合数的性质
高阶的基函数由2个低阶的基函数"升阶"得到
性质4.端点插值
性质5.导数
B e z i e r 曲 线 的 端 点 性 质 Bezier曲线的端点性质 Bezier曲线的端点性质:
端点插值: f ( 0 ) = p 0 , f ( 1 ) = p 3 f(0)=p_0,f(1)=p_3 f(0)=p0,f(1)=p3
端点的切线方向与边相同: f ′ ( 0 ) = n [ p 1 − p 0 ] , f ′ ( 1 ) = n [ p n − p n − 1 ] f'(0)=n[p_1-p_0],f'(1)=n[p_n-p_{n-1}] f′(0)=n[p1−p0],f′(1)=n[pn−pn−1],其中n为曲线阶数
端点的2阶(k)切线与3点(k+1)相关:
f ′ ′ ( 0 ) = n ( n − 1 ) [ p 2 − 2 p 1 + p 0 ] = 2 n ( n − 1 ) [ p 2 + p 0 2 − p 1 ] f''(0)=n(n-1)[p_2-2p_1+p_0]=2n(n-1)[\frac{p_2+p_0}{2}-p_1] f′′(0)=n(n−1)[p2−2p1+p0]=2n(n−1)[2p2+p0−p1]
f ′ ′ ( 1 ) = n ( n − 1 ) [ p n − 2 p n − 1 + p n − 2 ] = 2 n ( n − 1 ) [ p n + p n − 2 2 − p n − 1 ] f''(1)=n(n-1)[p_n-2p_{n-1}+p_{n-2}]=2n(n-1)[\frac{p_{n}+p_{n-2}}{2}-p_{n-1}] f′′(1)=n(n−1)[pn−2pn−1+pn−2]=2n(n−1)[2pn+pn−2−pn−1]
性质6.升阶
升阶:控制顶点变多,但是 B e z i e r Bezier Bezier曲线不变
三次 B e z i e r Bezier Bezier曲线有: