logo资料库

B样条曲线生成原理及实现.pdf

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
第 27卷 第 1期 2009年 2月 石 河 子 大 学 学 报 (自然 科 学 版 ) Journal of Shihezi University(Natural Science) Vo1.27 No.1 Fleb.2009 文章编 号 :100r7.7383(2009)01.0l18.04 B样 条 曲线 生成 原 理及 实现 王增波 ,彭 仁忠 ,宫兆刚 (衡阳师范学院数学系 ,湖南衡 阳 4210o8) 摘要 :为了进 一步推广 B样条曲线在各领域 的应用 ,本文从 B样条 曲线 的概念和定 义 出发 ,按节 点矢量 中节点 的 分布情况把 B样条 曲线划分成均匀 B样条 曲线 、准均匀 B样 条曲线 、分段 贝齐尔 曲线 、一般非均匀 B样条曲线 4种 类型 ,分 别对它们的特点和实现方法进行 了详 细阐述 ,最后给 出了一个 完整 的各 种 B样条 曲线生 成代码 和运行 结 果 ,并 进行 了详细的对 比分析 。对于在几何造 型和其 它方 面的应用 具有一定的实际价值 。 关键词 :B样条 ;控制顶点 ;基 函数 中 图 分 类 号 :TP391 文 献 标 识 码 :A 计 算机 辅 助 几 何设 计 始 兴 于 20世 纪 60年 代 , 维 、二 维空 间 中轨 迹 的 规 划 l_7 J等 。B样 条 曲线 的 应 最 初始 于 飞机 、船 舶 的外 形 放 样 工艺 。在 当 时计 算 用范 围还 在不 断 的扩大 ,同 时也在 不断 的改进 ,因此 机发展 的影 响下 ,为 了利 用 计 算 机 更 高效 地进 行 设 对它的研究具有一定 的应用价值和推广价值 。 计 ,人 们 开始 寻找研 究 曲线 或 曲面 的表示方 法 ,其 中 B样 条 曲线造 型方 法 的理论 基 础 是 B样 条 ,下 最著名 、最 实用 的 是 法 国 雷诺 汽车 公 司 的 工 程 师提 面从 B样条的定义和性质 ,以及各种 B样条曲线的 出的 B6zier技术llj和美 国机械工程师 Coons提出的 定义 和程 序实 现方 法进行 阐述 。 Coons技术 【2,3J。在 大 多数 情 况 下 ,描 述 产 品 外 形 的 曲线或 曲 面只有 大概 形状 或者 只知 道它 所通 过 的一 系列 空 间点 列 ,这 些点 称 为控 制点 ,这类 曲线 或 曲面 叫 自由曲线或 自由曲 面 ,而 计算 机辅 助 几 何 设 计 就 是研 究 自由曲线 曲面 的 表示 、设计 、显 示 、分 析 与综 合以及处理等 问题 。B样条曲线是 Bezier曲线 的改 进 ,对 于 Bezier曲线 来说 ,特征 多边 形 顶点个 数 决 定 了 Bezier曲线 的阶次 ,并且当 n较大时 ,特征多边形 1 B样 条 曲线 生 成 的 原 理 1.1 B样 条 曲线 的定 义 B样条 的 概 念 是 Schoenberg于 20世 纪 4o年 代 提 出的 [ , ,如今 由 De B()or[m,11]和 C0x[12]分别 提 出 的递推定义 ,由于其递推的性质使得计算 非常简便 且很 稳定 ,所 以得 到 了普 遍 认 同。 由 de Boor和 Cox 分别 导 出 的 B样条 递 推定义 ,B样条 可表 示 为 对 曲线 的控 制将 会减 弱 。改变 一个 控制 顶点 的位 置 ‰ ㈩ = +l' 会影 响 整个 曲线 的 形 状 ,这 不 利 于对 曲线 的局 部 修 改 ,且 Bezier曲线 在 很 多 情 况 下 不 能反 映特 征 多 边 )= ‰ ㈩ + 形的特点。1972—1974年 Gorden等将 Bezier的基 函 (1) 数换 成 B样条 函数 ,从 而 构造 了等 距 离节 点 的 B样 + l,k- l( >o, 条曲线 ,也称为均匀 B样条 曲线 。 B样条 曲线 的应 用 范 围 非 常广 泛 ,不 仅 在 几 何 造型方面 ,还应用到其它许多方面 ,如应用 B样条 函数处理力学 问题 j,结合小波方法应用于 图像的 约定罟=0。 式 (1)中 ,k表 示 B样条 的幂 次 ,t为 节点 ,下 标 i为 B样 条 的序号 。 完堑眭认证l5』,应用于实验数据的压缩[6]6,应用于一 式(1)表明,欲确定第 i个 k次 B样条 . ( ) 收稿 日期 :2008.06.18 基金项 目:湖南 省教育厅科研项 目(07B~)9) 作者简介 :王增波 (1975一),男 ,讲师 ,西安科技大学计算机应用专业硕 士,研究方 向:计算机图形学 ,e-mail:wonbo@126.tom。
第 1期 王增波 ,等 :B样条曲线生成原理及实现 119 需 用 到 ti,ti+ 一,ti+ +1共 k+2个 节 点 ,方程 中 n 时 ,由这些 顶点 定 义的 k次 B样 条 曲线 段 退化 到这 +1个 控 制顶 点 di(i=0,1,… ,孔)要用 到 +1个 k 一 个重合点;顺序 k+1个顶点共线时,由这些顶点 次 B样条基 函数 M. ( )(i:0,1,… ,n)。考察 B 定 义的 次 B样条 曲线 段退 化 为一 直线段 。 样条 曲线 定 义 在 区间 ∈[t ,t +1]上 那 一 曲线 段 , 略去其中基函数取零值 的那些项 ,则可表示为 i P( )= ∑ , ( ), ∈[t ,t +1], (2) 式 (2)表 明 ,k次 B样 条 曲线 上定义 域 内参数 为 ∈[t ,t +1]的一 点 P( )至 多与 k+1个 顶 点 ( =i—k, —k+1,… ,i)有 关 ,与其 它顶 点无关 。 1.2 B样条 曲线 的种类及主 要性质 本文按不同属性对 B样条曲线分类 ,其中一种 分类法是按节点在 曲线定义域内是否均匀分布将 B 样条 曲线 划 分 为 均 匀 与 非 均 匀 。决 定 B样 条 曲线 性质 最 重要 的属性 是 节 点矢 量 ,ISO制定 的 STEP国 际标 准 正是 按照 节点 矢量 中节 点 的分布 情况 不 同给 出 B样条 曲线 的类 型 划分 。 由于零次 与一 次 B样 条 曲线 分 别 就 是 控 制 顶 点与控制多边形 自身 ,与所取节点矢量无关 ,所以下 述按 节 点矢 量分 类 的 方法 ,尽 管 对 零次 与 一 次 B样 条曲线也适用 ,但 已经没有意义 。下 面考虑高于一 次 的 B样 条 曲线 。仍 给定 控 制 顶 点 d j:=i—k,i — k+1,… ,i)与次 数 k,有 节 点 矢 量 T:[to,t】… , t + + ]。B样条曲线按节点矢 量 中节点 的分布情 况不同,可划分为以下 4种类 型 :均匀 B样条 曲线 、 准均匀 B样 条 曲线 、分段 贝齐 尔 曲线 、一般 非均 匀 B 样 条 曲线 。均 匀 、准 均 匀 和非 均 匀 3种 类 型早 就 存 在 ,STEP标 准支持 把 分段 贝齐尔 曲 线作 为一 种 特殊 类 型 。 B样条曲线具有 以下主要性质 ,正是 因为这些 性质的存在 ,才使它得到了广泛的应用 。 1)递推 性 。 由上 述定 义表 明 。 2)局 部 性 质 。定 义 在 非 零 节 点 区 间 ∈ [t , ti+1]上 的 k次 B样 条 曲线 ,由 k+f个控 制 顶 点 及 5)变 差减 少性 质 。任一平 面 与 B样条 曲线 的交 点个数不会超过它与控制多边形的交点数 ,但包含 整个控制多边形的平面除外。该性质导致凸性定理 成 立 ,即若定 义平 面 B样条 曲线 的控 制 多 边 形 是 凸 的 (指 连接 首末 顶点 构成 的封 闭多 边形 为凸 的 ,相 重 边情况除外 ),则该平面 B样条 曲线也是凸的。 6)磨光性 质 。除共线 顶点 外 ,次 数越 高 ,B样 条 曲线距 离 定义 它 的控制 多边 形越远 。同一组 控制 顶 点定义的 B样条曲线 ,随次数的升高越来越光滑 。 7)几 何不 变性 与仿射 不 变性 。 2 B样 条 曲线 的生 成 方 法 2。1 均 匀 B样 条 曲线 均匀 B样 条 曲线节点矢量 中节 点为沿参数轴 均匀或等距分布 ,所有节点区间长度 :△ t£+1一t = 常数 >0(i:0,1,… ,n+k)。这 样 的 节点 矢 量定 义 了均 匀 B样 条基 。程 序 中可 以用一 维数 组 t保存 节 点矢 量值 ,在 VC编 程 中使 用 以下 语 句 对 节 点矢 量进行 赋值 : f0r(i:0;i<=n+k+1;i++) t[i]=i; 2.2 准均匀 B样 条 曲线 其节点矢量 中二端节点具有重复度 k+1,即 t。 =t1=… =t ,t +1=t +2=… =t + +l,所 有 内节 点 均匀分布 ,重复度 为 1。定义域 ∈[t ,t +1]内节 点 区间 长度 A =常数 >0(i=k,k+1,… ,n)与均 匀 B样 条 曲线定 义 域 内节 点 分 布 相 同 ,差 别 仅 在 于 二 端节点 。这样的节点矢量定义了准均匀 B样条基 。 在 VC编程 中用 以下 语句 对节 点矢 量赋 值 : for(i=0;i< =k;i++)t[i]=0; f0lr(i:k+1;i<13+1;i++)t[i]:i; for(i=13+1;i<=n+k+1;i+ +)t[i]=n 相 应 的 B样 条基 函数 确定 ,与 其它 顶点 无关 。 + 1。 3)可微性 。k次 B样条曲线在其定义域内的非 2.3 分段贝齐尔 曲线 零 节点 区 间 内部 是无 限 次可 微 的 ,即是 c 的 ,或 者 说具 有无 穷 阶连 续性 ;在定 义 域 内重 复 度 为 r的节 其 节点 矢量 中二 端节 点 重 复 度 与 类 型 2相 同 , 为 k+1。所不同的是 ,所有 内节点重复度为 k。选 点处 则是 k—r次 可微 的 ,即是 一的 ,或 者 说 是 具 用 该类 型有个 限 制 条 件 ,控 制 顶 点数 减 1必 须 等 于 有 后一r阶连续性 。 次数的正整数倍 ,即 n/k正整数。这样的节 点矢量 4)凸包性 质 。B样 条 曲线 的凸 包是 多个 曲线 段 定义了分段伯恩斯坦基。 凸包 的并集 ,其凸包 区域小于或等于同一组控制顶 在 VC编程 中用以下语句对节点矢量赋值 : 点定 义 的 B6zier曲线 凸包 区域 ,B样 条 曲线 恒 位 于 for(i=0;i< =k;i+ +)t[i]=0; 其 凸 包 之 内 。该 性 质 导 致 顺 序 k+1个 顶 点 重 合 for(i=k+1;i
120 石河 子大学学 报(自然科学版 ) 第 27卷 for(int j=0;j
第 1期 王增波 ,等 :B样条 曲线生成原理及 实现 121 lif(!DragOk)pnum=times;times:O;return;} 线用分段 Bezier曲线表示后 ,各 曲线段就具有 了相 else 对的独立性 ,移动曲线段内的一个控制顶 点只影响 {if(abs(int(X—con[0].x))==0&&abs(int(Y 该 曲线段的形状 ,对其它曲线段的形状没有影响 ,并 — con[0j.y))==0)O:true; if(bType! =3llbType==3&&0) if(begin){dc一>MoveTo(int(x),int(y));begin =0;} else 且 Bezier曲线 一 整套简 单 有效 的算 法 都可 以原 封 不 动地采 用 。 参考 文献 : [1]Brzier P E.Example of all existing system in motor industry: the UNISURF system[J].Proc Roy Soc of london,1971, if(x v!=0)dc一>LineTo(int(x),int(y));} A321:207-218. } 3 小 结 由上述 B样 条 曲线 的定 义 、性质 和实 现可 见 : 1)B样条曲线采用的基函数保持 了用控制顶点 定义曲线 ,从而继承 了贝齐尔方法所具有 的优 良的 控 制性 质 ,同 时 ,又克 服 了贝齐 尔方 法不 具有 局部 性 质 的缺点 ,并在参数连续性上轻而易举地解决 了贝 齐尔 方法在 描述 复杂 形状 遇 到 的连 接 问题 。图 2显 示 了在相 同控 制 顶 点 下 绘 制 出 的 贝齐 尔 曲 线 和 B 样条曲线 ,可以看出 B样条曲线在左起第 4个控制 [2]Coons S A.Surfaces for computer aided design of space fnns [R].can1 d Mass:MIT Project MAC—TR-255,1964. [3]Coons S A.Surfaces for computer mded design of space forms, MIT Project [4]杜双兴 ,殷 学 文 ,李 琪华 .B.SPline高 阶元方 法在 三维 水 弹性力学 中的应用 [J].船舶力学 ,2000,4(1):l7.23. [5]孙 玉文 ,陈伟卿 .B样条 技术 在 RPM切 片数据处 理 中的 应用 [J].航空精密制造技术 ,2002,38(4):30-32. [6]葛玉琛 ,程 昌年 .实验数 据 的 B样条压 缩法 [J].天津 职 业技术师范学院学报 ,2000,10(1):15.16. [7]任 重 ,杨灿军 .陈 鹰 .轨迹规划 中的 B样条插值 算法 [J].机电工程 ,2001,18(5):38.39. 点上 所展 现在 连接 方 面的优 势 。 [8]Sehoenberg I J.Contributions to the Problem of Approximation 2)B样条 曲线 划分 的 4种类 型 中 ,均 匀 、准均 匀 of Equidistant Data by Analytic Functions[J].Quart Appl 与分段贝齐尔 3种类型都可以看成一般非均匀的特 Maths,1946,(4):45-99,112.141. 例 。均匀 B样 条 曲线 在 曲线 定 义 域 内各 节 点 区 间 [9]Curry H B,Sehoenberg I J.On.Spline Distributions and Their 上具有 用局 部参 数 表 示 的统 一 的表 达 式 ,使 得 计 算 与处理简单方便 ,但用它定义的均匀 B样条 曲线没 有保 留 Bezier曲线 端 点 的几 何 性 质 ,即样 条 曲线 的 首末 端点不 再是 控 制多边 形 的首末 端 点 ,如 图 1a所 示 。采 用准 均 匀 的 B样 条 曲线 就 是 为 了解 决 这 个 问题 ,使曲线在端点的行 为有较好 的控制 ,如图 lb Limits:Th e Polya Distribution Functions[J].American Mathe- matieal Soc,1947,53:1114. 1lO]De Boor C.On Calculating with B—Sphne[J].J Approx Theo— ry,1972,(6):50-62. 【l1] De Boor C.A Practical Guide of Splines[M].Newyork: Spring er,1978. [12]Cox M.G.The numerical Evaluation of B-Splines[J].J INST 所示。分段 Bezier曲线实例如图 1c所示 ,B样条 曲 Maths AppIicati0n,1972,10:134—149. The Creating Principle and Realization of B-spline Curve WANG Zeng—bo,PENG Ren—zhong,GONG Zhao—gang (Hengyang Normal University,Hengyang,Hunan 421008,China) Abstract:To further promote the application in various fields,this paper described the basic concept and definiti0n 0f B. spline Curve an d they were divided into four types under nodes distribution of node vector. The four types are a uniform B. spline curve,a quasi—uni~rm B—spline curve,a sub.Brzier curve,and a general non-uniform B—spline curve.Four methods have been introduced in detml and analyzed comparatively.Th eir source codes.running results and a detailed compar~ive analysis were giveu.This paper has certain application value to implement the geometric modeling and others. K ey words:B-spline;control points;basis function
分享到:
收藏