




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、NURBS 曲线编辑 COM 服务器设计与实现摘要 :根据已有绘图工具在绘制自由曲线方面的不足 , 提出了基于 COM 服务器的 NURBS 曲线编辑器的思想并编 程实现。该编辑器既可以实现单独 NURBS 曲线编辑 ,也可以 被 Office 软件调用实现在文档编辑。该编辑器为用户编辑符 合自己需要的自由曲线提供了一种选择。关键词:NURBS曲线;COM服务器;Office中图分类号 :TP3 文献标识码 :A 文章编 号: 1009-3044(2010)08-2002-04Design and Implementation of NURBS Curve Editor Based on CO
2、M ServerWEI Sheng-li, CHANG Guo-quan(Computer Science and Imformation Engineering Department, Anyang Institute of Technology, Anyang 455000, China)Abstract: In terms of the deficiency of the exiting figure-editing tools at the aspect of free curves editing, present an idea on designing a NURBS curve
3、 editor based on COM server and also implement the idea. The editor can be used to edit NURSB curves by itself or can be called by Office tools to edit NURBS curves on the documents in which the curves are about to be inserted. This editor presents a possibility for users to edit free curves that wi
4、ll satisfy custom-built requirements.Key words: NURBS Curve; COM Server; OfficeWord 是 Office 软件包中大家所熟悉的功能强大的文档 处理软件 ,在 Word 中可以实现图文并茂的文档编辑处理。要 在 Word 中绘制或者插入图形 , 可以利用其自带的图形绘制功 能进行 ,也可以利用其它图形绘制软件 ,如 visio 来绘制 ,绘制后 插入到 Word 文档中。 Word 自带的绘图功能以及其它的图形 绘制软件的绘图功能虽然强大 ,但在绘制自由曲线曲面方面 还是不能满足人们多样化、个性化的需要。将用其它工具
5、绘制的图形插入到 Word 中 ,可以使用一种 称为对象链接与嵌入 (OLE, Object Linking and Embedding) 的 技术。OLE是在客户应用程序间传输和共享信息的一组综合 标准,它是基于组件对象模型 (COM) 的,允许开发可在多个应 用程序间互操作的可复用的即插即用对象。该技术获得了广 泛的应用 ,通过它可以在电子表格、 字处理程序、 财务软件包 及其它应用程序间共享或者链接数据和信息。OLE 是一种面向对象的技术 ,利用这种技术可以开发可 重复使用的软件组件 ,即所谓的 COM 。很多应用程序被设计 成 COM 容器或者 COM 服务器类型。 例如 ,绘图软件
6、visio 就 是一个 COM 服务器 ,利用它绘制的图形可以复制或者插入到 Word 及其它文档中 ,并且可以在 Word 文档中直接进行编辑操作。这时 Word 的作用就相当于 COM 容器。也可以把 Word文档或者其一部分复制或者插入到其它文件如 excel 表格中。 这时 Word 就相当于服务器而 excel 相当于容器。其实 ,Word 和 excel 既是 COM 服务器也是 COM 容器。1解决思路NURBS( 非均匀有理 B 样条)是描绘自由曲线曲面的有力 工具 ,它在曲面造型、 机械设计等许多方面都有应用。 许多绘 制自由曲线曲面的工具也应用了这种技术。可以利用 NURB
7、S 设计一种 COM 服务器来绘制自由曲线。 该服务器也 可以被象 Word 或者 excel 等 Office 软件调用以实现在 Word 文档或者 excel 表格中绘制所期望的曲线。2 NURBS 曲线生成原理2.1根据控制点等信息生成曲线NURBS(非均匀有理B样条)是80年代中期以后才逐渐 发展起来的描述自由曲线、曲面的方法。 1991 年 ,STEP(Standard for the Exchange of Product Model Data, 产 品模型数据交换标准 )把 NURBS 作为定义工业产品几何形体 的标准数学表达方法 1 。就如同可以用圆心坐标和半径来表示或控制一个
8、圆一样,NURBS曲线可以用控制点、权因子、节点及其阶数来表 示或控制。 NURBS 曲线的定义如下 2-3:其中P(u)表示曲线上的点,u为曲线参数;Vi为控制点矢 量,Wi为权因子,Bi,k(u)为k次B样条基函数。绘制 NURBS 曲线 ,可以先求出曲线上的多个点,然后用短直线去逼近原曲线。而求 NURBS 曲线上的点可以根据控 制点、权因子、 节点及曲线的阶数来进行。 根据公式 (1),如果 令那么 NURBS 曲线可写成 :符合 B 样条曲线的定义。由 de Boor 和 Cox 分别导出的B 样条递推定义 ,B 样条曲线可表示为 2:Vi(i=0,1,n)是控制多边形顶点(简称控制
9、点)矢量,Bi,k(u)称为B样条基函数,由下面的递推公式定义2: 式中 0/0=0 是指当分子分母都为 0 时,则定义结果为 0。 u 是参数,ui是节点,U=u0,u1,um构成了 k次B样条函数的 节点矢量 ,节点是非减序列。 当节点数为 m+1 、曲线幂次为 k、 控制点数为n+1时,m、k和n三者之间的关系为:m=n+k+1。 一般情况下 ,为了使曲线通过控制多边形的首末端点并和首 末两条边相切 ,节点矢量一般取为如下形式 2:当 ui+1-ui= 常数时 ,则表示均匀 B 样条函数 ,反之称为非 均匀 B 样条函数。可以用 de Boor 算法求解公式 (5)。对于 B 样条曲线
10、,de Boor 算法如下 4:对于 u ui,ui+1,k i n,有:其中 k 为幂次。 Ck i (u) 则由下述递推公式定义 :其中:r=1,2,k。对于三次B样条,有:其中,根据以上关系可以递推地求出Q(u)。同理,公式、(3)也可以用这种方法求解 ,进而公式 (1)可以求解。2.2由型值点生成曲线 由上所述 ,知道了 NURBS 曲线的控制点、权因子、节点 及阶数等这些控制信息 ,可以绘制出相应的曲线。但实际情况是,根据这些信息难以精确地知道该曲线的具体形状 ,所以难 以准确地给出想要绘制的曲线的这些控制信息。在实际过程 中 , 常常是希望所绘制的 NURSB 曲线通过所设定的点
11、(这些 点通常称为型值点 )。那么需要根据这些给定的型值点计算曲 线的控制信息。 这称为控制多边形顶点的反求 ,也称为反求工 程。根据公式 (5)可将 NURBS 曲线方程改写为 5其中 :因此,给定型值点Qi及其权因子hi,i=0,1,n可以建立如 下方程组 5上述方程组数为 n+1 个,而未知数为 n+3 个,故需要补充 两个方程 ,可以根据边界条件补充方程。边界条件有切矢条 件、自由端条件和闭曲线条件 6 。虽然上述公式已经具备了求解的要素,但是要真正求解却不是容易的事。一是权因子 hi 的确定现在还是个难题 5-6, 而是公式 (12)本身的求解就非常困难。为了解决这个问 题,我们采用
12、近似的方法来进行求解。首先我们将权因子 hi 都设为 1,这在大部分情况下是可以的 5 。其次我们可以将NURBS 简化为准均匀 B 样条来建立方程组进行求解。对于准均匀 B 样条,反求方程组可写成矩阵的形式5 。其中 VO=PO、Vn+仁Pn。bl、cl、an、bn、di、dn 根据不同的边界条件取不同的值 5 。比如当给定切矢条件时 当给定自由端条件时 公式( 1 3)中的矩阵是一个三对角矩阵 ,对于这样的矩阵 ,求解时可以采用追赶法进行 7 。根据这种方法获得多边形控 制顶点和权因子后 ,可以根据需要调整控制顶点和权因子直 到符合要求。然后就可以利用这样的控制顶点和权因子求解 整个曲线。
13、NURBS 的节点是非均匀的 ,因此如何确定它的节点矢量 也是一个关键问题。给定 NURBS 曲线的控制顶点Vi(i=0,1,n)定义一条次非均匀有理B样条曲线,需确定它的节点矢量U=u0,u1,un+k+1中的具体的节点值。如前所述, 为便于对曲线在端点的行为有较好的控制 ,使曲线首末端点 通过第一个和最后一个控制多边形顶点 ,并且使多边形的首 末两条边和曲线在两端相切 ,通常取两端节点的重复度为k+1,将曲线的定义域取成规范参数域,即u 0,1。即:需要确定只是uk+1,un这些所谓内节点的值。求取内节点的方法有里森费尔德(Riesenfeld,1975)方法和哈特利(Hartley)-贾
14、德(Judd)方法。前者与曲线次数的奇偶 性相关 ,而后者与曲线次数的奇偶性无关,可以采用统一的计算公式 ,而且在计算过程中不考虑对该曲线没有影响的顶点 ,这一点比里森费尔德方法更为合理。(Hartley) (Judd)方法6 计算 NURBS 的节点矢量公式如下 :3编程实现及效果3.1 实现过程用 Visual C+6.0 向导生成一个全功能服务器 ,在其中增 加一个和 NURBS 曲线相关的 nurbs 类,然后设计菜单和对话 框,并编写消息处理代码。3.2编辑器的功能设计的软件功能有 :1)根据控制信息绘制曲线。 在如图 1 所示的对话框中输 入曲线的控制点等控制信息 ,按确定绘制曲线
15、 ,如图 2 所示 (红 圈代表控制点 )。要在 Office 工具如 Word 文档中绘制图形 , 可以选择插入对象 ,选择该 COM 服务器注册的对象 ,点击后 的操作和直接在该软件的操作相同,绘制结果如图 3 所示 ,在Word 中的编辑状态如图 4 所示。2)根据型值点生成控制点并生成曲线,可以在 Office 工具如 Word 中进行编辑。3)可以根据用鼠标通过调整控制点实时曲线形状。4)保存控制点等控制信息。5)可以载人控制点等控制信息。6)可以保存和打开程序文件。7)插入到 Office 工具如 Word 文档保存后 ,再次打开仍旧 可以编辑。3.3需要改进的地方 该编辑器还存在着许多不足之处,主要有 :尚不能实现对图形的翻转、拖动等操作。 没实现调整权因子来对曲线形状进行微调。 参考文献 :1周济,周艳红.数控加工技术M.北京:国防工业出版 社,2002.2朱心雄.自由曲线曲面造型技术 M. 北京:科学出版 社,2000.3孙家广,杨长贵.计算机图形学(新版)M.北京:清华大 学出版社 ,1994.4边玉超,张莉彦,戴莺莺,等.CNC系统中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025授权贷款借款的合同范本
- 2025如何制定技术服务合同
- 2025届江西省六校高三下学期第二次联考生物试题及答案
- 2025标准车辆租赁合同协议样本范本
- 专业滑雪教练合作协议
- 崇文区危化品货物运输合同
- 抚顺新项目合作协议
- 在职知识产权归属合同
- 借款抵押协议书公证
- 天津机动车牌照租赁协议
- 苏霍姆林斯基的教育思想
- 2025年内蒙古自治区中考一模语文试题(原卷版+解析版)
- DBJ50-T-232-2016 建设工程监理工作规程
- 克服厌学情绪的有效策略主题班会
- 2025年陕西延长石油集团矿业公司招聘笔试参考题库含答案解析
- 加油站的物联网技术应用
- 《跟上兔子》绘本五年级第1季A-Magic-Card教学课件
- 安全文明离校主题班会
- 2025-2030全球稠油行业调研及趋势分析报告
- GB/T 44994-2024声学助听器验配管理
- 银行成立网点可行性报告范文银行网点新增的可行性报告
评论
0/150
提交评论