自由曲面的基本原理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 曲线(面)的参数化表达
一般情况下,我们表达曲线(面)的方式有以下三种: (1) 显式表达 曲线的显式表达为y=f(x),其中x坐标为自变量,y坐标是x坐标的函数。曲 面的显式表达为z=f(x,y)。在显式表达中,各个坐标之间的关系非常直观明了。 如在曲线表达中,只要确定了自变量x,则y的值可立即得到。如图1所示的直线 和正弦曲线的表达式就是显式的。 图1 (2) 隐式表达 曲线的隐式表达为f(x,y)=0,曲面的隐式表达为f(x,y,z)=0。显然,这里各个 坐标之间的关系并不十分直观。如在曲线的隐式表达中确定其中一个坐标(如 x)的值并不一定能轻易地得到另外一个(如y)的值。图2所示的圆和椭圆曲线 的表达式就是隐式的。 图2 (3) 参数化表达 曲 线 的 参 数 表 达 为 x=f(t);y=g(t) 。 曲 面 的 参 数 表 达 为 x=f(u,v);y=g(u,v);z=g(u,v) 。这时各个坐标变量之间的关系更不明显了,它们是 通过一个(t)或几个(u,v)中间变量来间接地确定其间的关系。这些中间变量 就称为参数,它们的取值范围就叫参数域。 显然,所有的显式表达都可以转化为参数表达,如在图1所示的直线表达式
中令x=t则立即可有y=t 。于是完成了显式表达到参数化表达的转换。由此,我 们可以得出下个结论,即参数化表达方式所能表示的曲线(面)种类一定多于 显式表达,因此更灵活。 同时,我们也应注意到,对同一曲线(面)的参数化表达有多种。如在图1 所示的直线表达式中令x=t2,则代入后可得y=t2(注意与前一次转换的不同)。 这时,t与x、y的关系由前一次的等价关系变成了现在的平方关系,而所表达的 曲线却没有什么不同。当然,这并不意味着我们就可以任意改变其表达方式, 而是根据应用的需要来确定适合的关系(这一点在后面还会讲到)。 鉴于参数化方法在表达曲线(面)上的灵活性,因此在 CAD/CAM 软件中 自由曲线(面)均采用参数化表达,同时这也是 ” 自由 ” 一词的含义之一。当 然,采用参数化方式表达自由曲线(面)还有其它许多优点,这里就不一一介 绍了。
为P(t)。即 P(t) = (1-t)P1 + tP2 式(1)
上式就是该线段的参数化表达式。其中t 为参数,其取值范围为(0,1) 。假 如我们给定P1和P2的坐标值(x1,y1)和(x2,y2),则将它们分别替换式(1)中的P1 和P2即可得到P(t)点的坐标x(t)和y(t)如下: x(t) = (1-t)x1 + tx2 y(t) = (1-t)y1 + ty2 显然,当t取0时,有P(t) = P1,即P点与P1重合。当t取1时,有P(t) = P2,即P点 与P2重合。当t在0到1之间变化时,相应地将得到直线P1P2上的不同点位。 如上述,由式(1)表达的通过已知点P1、P2计算一条线段上任意点P(t)的方 法称为插值运算。其中参数t的最高幂次称为表达式(或曲线)的阶数。同时, 由于式 (1)中的 t 的最高次幂为1,因此式(1) 所表示的参数表达式是1 阶的,它所 代表的插值运算又称为线性插值。 由式(1)所表达的线段P1P2称为一阶 Bezier样条曲线。P1和P2点称为该 线段的控制顶点。 类似地,我们可以得到二阶Bezier曲线的生成过程。如图4所示: 图4 图4中,P1、P2、P3为三个控制顶点,对0到1之间的任意参数t,分别在 P1P2、P2P3之间完成与式(1)同样的线性插值,并得到两个插值点: P11 = (1-t)P1+tP2 P12 = (1-t)P2+tP3 接着,对在P11P12之间完成第二轮线性插值得: P(t) = (1-t)P11+tP12 将P11和P12的计算式分别代入上式得 P (t)= (1-t)2P1 + 2t(1-t)P2 + t2P3
3 维数的概念
对自由曲线而言,不管采用何种表达方式,它都有一个共同的特征,即各 种表达方式中只允许有一个变量是可以自由变动的。如显式及隐式表达式中x、 y中只有一个可以自由变动,另一个则受到关系式的约束。而参数表达式中x、 y、z之间存在两个关系式,因此也只允许其中一个的取值自由变动。 同样可以得到,曲面表达式中存在两个可以同时自由变动的变量。 几何体的表达式中可同时自由变动的变量的个数称为该几何体的维数(或 自由度)。因此,不能将一个三维空间内生成的几何体就简单地归属于三维形 体的范畴。 例如,一条空间曲线只是一维的形体,因为它的表达式中只允许有一个自 由变量。直观地,在曲线上的运动只有前后方向上的选择,而没有其它第二类 选择。 同样地,空间的曲面为二维形体,一个点是零维形体,而实体造型得到的 几何实体则是三维形体。我们可以用下面的式子表示几何体的维数(自由度) 判定方法: 维数 = 自由度 = 自由变量 = 变量数 - 表达式中的方程数
= ∑ Pi B i2 (t )
i ຫໍສະໝຸດ Baidu1
3
(0 < t < 1)
式中Bi2(t)(i=1,2,3)称为二阶Bernstein基函数。i的取值不同,Bi2(t)的表达式也 不同。例如i=1时,Bi2(t)= (1-t)2,i=2时,Bi2(t)= 2t(1-t)。当t在0到1之间变动时, P 的相应移动轨迹就形成了一条曲线,即由控制顶点 P1 、 P2 、 P3 构成的二阶 Bezier样条曲线。 n 个控制顶点按上述同样的方法(进行 n-1 轮插值运算)即构成 n-1 阶的 Bezier样条曲线,其表达式为:
P(t ) = ∑ Pi B
i =1
n
n −1 i
(t ) (0 < t < 1)
式(2)
如前所述,理论上,对同一曲线的参数表达是有无穷多种方式的,这也是 参数化表达的灵活性之一。例如对图三中的线段也可以用下面的参数表达式表 示: P(t) = (1-t)2P1 + t2P2 式(3) 在这一表达式中,当无论t在0到1范围内取什么值,P(t)仍是线段P1P2上的一个 点(尽管同样的t值在式(1)和式(3)中会得到不同的点位)。因此式(2) 也是该线段的一个参数表达式,由于其中参数t的最高幂次为2,因此它是二阶 的非线性插值。按这一思路,读者也可以”发明”自己的自由(样条)曲线。 至于在实际应用中究竟采用何种参数表达式,则取决于其应用价值。事实 上,与其它插值方式(如式(3)的方式)相比,线性插值有许多明显的优点, 如计算简单、具有控制顶点的凸包性特点等,这里不再一一说明。基于这些优 点,线性插值成为应用最广泛的自由曲线生成方式,而用该插值方式生成的自 由(样条)曲线称为Bezier曲线。 通过总结 Bezier 曲线的生成原理,我们可以得到一个重要的结论,即自 由曲线是由一组控制顶点以某种方式(如线性)插值生成的,其最终形状也必 然取决于这两个要素:一是控制顶点;二是插值方式。在CAD/CAM 软件中, 自由曲线(面)也正是以这种方式定义的。
4 Bezier曲线的生成原理
自由曲线的种类很多。我们以其中最简单的一种----Bezier样条曲线为例 介绍自由曲线的生成原理。 图3 图3所示为一条由空间两点P1和P2构成的直线段,P是线段上任意一点。 如果将P到起始点P1的距离与线段的总长的比值定义为参数t,则立即可以得到P 与P1、P2的关系式: |P – P1| / |P2 –P1| = t 即 P = (1-t)P1 + tP2 由于P1和P2是确定的空间点,P的位置将随t的变化而变化,因此P也可记
x
y
y=x
y
x
y=sinx
图1
y x2+y2=R2 x
x2/a2+y2 /b2
=R
2
图2
P
1-t t P(t)=(1-t)P1+tP2
P
0 t
图3
1
P2 1-t P11 t P1 P3 t P(t) 1-t t P12 1-t
0
图4
t
1
自由曲线曲面的基本原理(下)
浙江大学 单 岩 浙江黄岩华日(集团)公司 梁建国
5 自由曲线的几点说明
下面我们针对造型的实际需要,对自由曲线的特点和生成方式作几点补 充说明,以便读者更有效地使用CAD/CAM软件中的有关功能 5.1 与坐标系无关性 读者或许会注意到,在Bezier曲线的表达式中(见上期文章),根本没有 出现任何坐标变量(如x,y,z ),即使是控制顶点Pi的坐标值也未出现,即这种 表达式是与坐标无关的。它的优点至少有三个方面: (1)与现实世界保持一致,更易于理解。现实世界中本来就不存在什么 坐标系,坐标系只是人为创造出来的一个位置基准,是可以任意变化的。实际 空间上的每一个点客观上占据着一个确定的空间位置,是不依赖于任何坐标系 的客观存在,而坐标系仅仅是用于帮助描述这个空间位置。也就是说,对于一 个确定的空间点,坐标系的变化不会使其空间位置发生任何变化,但其坐标值 (即对这个位置的描述)却发生变化。同样,一条自由曲线是由一组控制顶点 通过插值得到的,其形状仅与控制顶点之间的位置 (注意不是坐标值!)和插值 方式有关,因此其表达式中自然没有必要出现坐标变量。 (2)表达方便、统一。对于非参数化表达(如直线y=x)而言,当坐标 系逆时针旋转90度时,它的表达式就发生变化(y=0),有时甚至无法得到新的 表达式。这就为编制统一的处理软件带来了极大困难。而Bezier 曲线的表达式 与坐标系无关,始终保持统一,因此方便编制统一的计算程序。 (3)图形处理速度更快。当我们在计算机屏幕上显示一条曲线时,它已 按一定精度离散成许多点。如果这时需要对显示进行一些变换(如旋转),则 对于非参数化表达的曲线我们只能将其离散点一一进行变换(因为其表达式发 生了变化或者根本无法表达),这将耗费大量的计算时间。而对于Bezier 曲线 则只要将数量有限的控制顶点进行变换后重新通过插值运算重新绘出新的曲线 即可,而插值过程是线性运算(见上期文章),速度远高于旋转变换运算,因 此整个变换过程要比非参数化表达的曲线快得多。 5.2 参数与参数域 从自由曲线的表达方式可知,自由曲线上的每一个点对应于一个参数t,t 的取值范围称为参数域,通常定义在0到1之间。 如图5所示,当参数t在参数域上等间距取值(0.25)时,自由曲线上的对 应点称为等参数分隔点。也就是说,相邻的等参数分隔点在参数域上具有相同 的间距(图中为0.25 ),即均匀分布,而在曲线上的间隔(弧长)却不均匀。 如 图 5 中 P(0) 到 P(0.25) 的 参 数 间 距 与 P(0.75) 到 P(1) 的 参 数 间 距 相 同 ( 均 为
自由曲线曲面的基本原理(上)
浙江黄岩华日(集团)公司 梁建国 浙江大学 单 岩
1 前言
曲面造型是三维造型中的高级技术,也是逆向造型(三坐标点测绘)的 基础。作为一个高水平的三维造型工程师,有必要了解一些自由曲线和曲面的 基本常识,主要是因为:(1)可以帮助了解CAD/CAM软件中曲面造型功能选 项的意义,以便正确选择使用;(2)可以帮助处理在曲面造型中遇到的一些问 题。由于自由曲线和自由曲面涉及的较强的几何知识背景,因此一般造型人员 往往无法了解其内在的原理,在使用软件中的曲(线)面造型功能时常常是知 其然不知其所以然。从而难以有效提高技术水平。 针对这一问题,本文以直观形象的方式向读者介绍自由曲线(面)的基 本原理,并在此基础上对 CAD/CAM 软件中若干曲面造型功能的使用作一简单 说明,使读者初步体会到背景知识对造型技术的促进作用。
0.25),但在曲线上P(0)到P(0.25)的弧长却远小于P(0.75)到P(1)的弧长。上述可 简单总结为:自由曲线的参数等分段不等弧长。
P(0. 25) P(0)
P(0. 5) P(0. 75) P(1)
t
0 0.25 0. 5 0.75 参数域 1 图5 5.3 形状的控制 直观地,我们可以将自由曲线上的点看作各控制顶点共同影响(影响的方 式取决于插值方式)的结果,表达式中的基函数Bin(t)可以理解为各控制顶点Pi 对曲线形状的影响力,且这些影响力(即基函数Bin(t))的总和始终是固定的常 数1。随着参数的变化,各个控制顶点的影响力分配会有所变化:当参数越靠近 0 ,则起始控制顶点P0的影响力B0n(t) 及其附近的控制顶点的影响力就越大。反 之当参数越靠近 1,则终止控制顶点Pn 的影响力Bnn(t) 及其附近的控制顶点的影 响力就越大。如对Bezier曲线而言,当参数值取0时,控制顶点P0的影响力(即 基函数B0n(t))的值为1 ,达到最大值,而其它控制顶点的影响力均为零,此时 对应的曲线上的点就是控制顶点P0。 如前述 ,自由曲线的形状取决于两个因素:控制顶点和插值方式(即控 制顶点对曲线的影响方式)。因此我们可以通过改变控制顶点或插值方式来控 制曲线的形状。 通过改变控制顶点控制曲线形状比较简单,也很直观,是通常采用的一 种方式。而通过改变插值方式来控制曲线的形状则很少使用,因为插值方式决 定了曲线的类型(如Bezier或NURBS等),因此对插值方式的修改是受到限制 的,一般仅能通过所谓的加权系数(weight)进行调整。如图6所示: P2 P2