文章:Developable Bezier patches: properties and design
一、 介绍部分:
文章研究了给出两条边界曲线对二次和三次可展Bezier曲面的几何设计。
文中还是先给出直纹面的方程,而直纹面可展需要一定的条件。文中直纹面的可展性条件是从de Casteljau算法从几何上推导出来的,并可以表示为一组必须由Bezier控制点满足的方程。这组方程允许我们推断可展的Bezier曲面的一些重要特性,这些特性提供了有用的参数,简化了曲面设计的过程。
文章中还给出了一些自由度的介绍。如果自由地指定直纹面的一条边界曲线,则同样维度的另一条边界曲线可获得五个以上的自由度。
文章还介绍了在三维空间中充分利用这五个自由度设计一般二次和三次可展曲面的各种方法。
二、 Bezier曲面中可展性约束(Developability constraints in Bezier patches)
2.1 可展性条件
对于任意两条贝塞尔边界曲线
A
(
w
)
和
B
(
w
)
A(w)和B(w)
A(w)和B(w),我们通过将每对对应点(w为参数)与直线线段AB连接,定义一个直纹贝塞尔曲面,如下图所示:
直纹贝塞尔曲面表达式为:
X
(
t
,
w
)
=
(
1
−
t
)
A
(
w
)
+
t
B
(
w
)
,
t
∈
[
0
,
1
]
,
w
∈
[
0
,
1
]
X(t,w) = (1-t)A(w) + tB(w) , t\in[0,1] , w\in [0,1]
X(t,w)=(1−t)A(w)+tB(w),t∈[0,1],w∈[0,1]
t 是沿母线的参数。
该直纹面可展的充要条件为:
A
˙
(
w
)
×
B
˙
(
w
)
⋅
[
A
(
w
)
−
B
(
w
)
]
(1)
\dot{A}(w)\times \dot{B}(w) \cdot[A(w) - B(w)] \tag {1}
A˙(w)×B˙(w)⋅[A(w)−B(w)](1)
将两条曲线的Bezier表示代入式(1),得到一个复杂的方程组,必须施加在Bezier控制点上,以确保曲面的可展性。典型的解决方案涉及一个非线性方程组.
2.2 可展性条件的几何解释
这种可展性条件在贝塞尔曲面的de Casteljau构造过程中具有几何解释. 贝塞尔曲线上的点可以通过初始控制顶点经过一系列线性插值来计算。如图2所示,二次Bezier曲线
A
(
w
)
和
B
(
w
)
A(w)和B(w)
A(w)和B(w) 可以表示为:
注意,对于这个Bezier 曲面,线段IK和JL分别位于A(w)和B(w)处的切向。则由可展性条件表明I、J、K、L在同一平面上,式(1)可表示为:
I
J
⋅
K
L
×
I
K
=
0
(2)
{IJ}\cdot KL \times IK = 0 \tag {2}
IJ⋅KL×IK=0(2)
点I、J、K、L的四种几何构型均满足式(23),如图3所示。对于w的所有值,它应该保持:
2.3 de casteljua 算法中的可展性约束
文章作者为了简化求解过程,我们开发了一种计算Bezier控制点的新方法,而不是直接从方程(3)中求解。假设在图4中:
带入(3)式,可得:
前两个约束得出四点共面,称为共面性条件。对于任意的
w
w
w值,四边形
I
J
K
L
IJKL
IJKL必须是平面(???不懂)
类似的,可以推导出三维Bezier曲面的相关内容(这里就不详细给出了,想看的自己看论文吧!)
三、 可展曲面设计的自由度(Degrees of freedom for developable patch design)
计算任意设计的自由度数对描述系统是有用的。在将可展性条件扩展到高阶曲面之前,确定控制网格中自由设计参数的数量是有利的。
3.1 计算自由度
如果边界曲线的阶数为n,则
I
、
J
、
K
、
L
I、J、K、L
I、J、K、L的坐标为曲线参数
w
中
的
(
n
−
1
)
w中的(n-1)
w中的(n−1)阶多项式(??由文中2、3阶的曲面的结论递推过来的??)。因此,向量
I
J
、
K
L
和
I
K
IJ、KL和IK
IJ、KL和IK的系数也是
w
中
的
(
n
−
1
)
w中的(n-1)
w中的(n−1)次多项式。将它们代入方程式(3)中,得到一个
3
(
n
−
1
)
3(n-1)
3(n−1)次多项式,且这个
3
(
n
−
1
)
3(n-1)
3(n−1)次多项式中有
3
n
−
2
3n-2
3n−2项的系数为零。(应该是由文中2、3阶的曲面的结论递推过来的!!!)
多项式中有
3
n
−
2
3n-2
3n−2项的系数为零会给出
3
n
−
2
3n-2
3n−2个限制条件。A曲线和B曲线在三维空间中各有(n+l)个三维控制点,每个曲线的控制点贡献的自由度为3(n+1)。A曲线可以自由指定;此时,则B曲线的可用自由度为
3
(
n
+
1
)
−
(
3
n
−
2
)
=
5
3(n+1)-(3n-2) = 5
3(n+1)−(3n−2)=5,与曲面的自由度无关。
如集B曲线的维数高于A-曲线的维数,类似的推理可以确定可用的自由度。点I和K是曲线参数w的(n-1)次多项式,点J和L是曲线参数w的(m-1)次多项式。已知A曲线,确定B曲线的自由度为(5+m-n).
3.2 固有的尺度参数 (Inherent scaling parameter)
一个可展曲面本质上允许我们通过仿射变换来改变它的形状,而不影响可展性质,Eq.(1)可以扩展为:
因此,Eq.(24)中的每一项都是曲线参数w的贝塞尔形式。缩放原始控制点的x,y和z坐标值相当于将第一行,第二行或第三行分别乘以一个常数。换句话说,即使在其坐标的缩放比例不均匀的情况下,**可展的贝塞尔曲面片仍可展。**因此,可展性是曲面的一种仿射性质。
四、 可展Bezier曲面的设计
我们假设控制曲线A是由设计者从一个可展Bezier曲面完全指定的。由于必须满足可展性约束,因此B曲线只能被控制到有限的程度。 如前所述,具有相同维数边界曲线的可展Bezier曲面最多为B曲线提供5个自由度。有很多方法来使用这些指定B曲线的自由度。每种方法对求解可展性约束有不同的计算要求。
图7再次显示了二次Bezier曲面,以方便参考使用的符号。 A曲线由设计者自由设计,此外,可以用5个自由度来定义B曲线的约束,然后系统确定所有点
B
i
B_i
Bi的所有坐标。
4.1 二次情形(Quadratic case)的第一种方法
设计师利用这五个自由度如下:
- 指定 c 0 和 c 2 c_0和c_2 c0和c2到B曲线端点的方向向量,分别为两个自由度;
- 为向量
c
0
,
c
1
,
c
2
c_0 ,c_1, c_2
c0,c1,c2选择一个公共的比例因子
f
f
f 为一个自由度;该因子可用于将端点
B
0
或
B
2
B_0或B_2
B0或B2放置到准确位置. (感觉下面的s,t为两个自由度)
最后,求出f值, c 0 , c 1 , c 2 c_0 ,c_1, c_2 c0,c1,c2可以用封闭形式表示,Bezier 可展曲面的设计就完成了。
(具体过程就先不展开了,自己也还没太看懂)
$
未完待续…
未完待续 … …