NURBS曲線編輯COM服務(wù)器設(shè)計(jì)與實(shí)現(xiàn)_第1頁
NURBS曲線編輯COM服務(wù)器設(shè)計(jì)與實(shí)現(xiàn)_第2頁
NURBS曲線編輯COM服務(wù)器設(shè)計(jì)與實(shí)現(xiàn)_第3頁
NURBS曲線編輯COM服務(wù)器設(shè)計(jì)與實(shí)現(xiàn)_第4頁
NURBS曲線編輯COM服務(wù)器設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、NURBS 曲線編輯 COM 服務(wù)器設(shè)計(jì)與實(shí)現(xiàn)摘要 :根據(jù)已有繪圖工具在繪制自由曲線方面的不足 , 提出了基于 COM 服務(wù)器的 NURBS 曲線編輯器的思想并編 程實(shí)現(xiàn)。該編輯器既可以實(shí)現(xiàn)單獨(dú) NURBS 曲線編輯 ,也可以 被 Office 軟件調(diào)用實(shí)現(xiàn)在文檔編輯。該編輯器為用戶編輯符 合自己需要的自由曲線提供了一種選擇。關(guān)鍵詞:NURBS曲線;COM服務(wù)器;Office中圖分類號(hào) :TP3 文獻(xiàn)標(biāo)識(shí)碼 :A 文章編 號(hào): 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 軟件包中大家所熟悉的功能強(qiáng)大的文檔 處理軟件 ,在 Word 中可以實(shí)現(xiàn)圖文并茂的文檔編輯處理。要 在 Word 中繪制或者插入圖形 , 可以利用其自帶的圖形繪制功 能進(jìn)行 ,也可以利用其它圖形繪制軟件 ,如 visio 來繪制 ,繪制后 插入到 Word 文檔中。 Word 自帶的繪圖功能以及其它的圖形 繪制軟件的繪圖功能雖然強(qiáng)大 ,但在繪制自由曲線曲面方面 還是不能滿足人們多樣化、個(gè)性化的需要。將用其它工具

5、繪制的圖形插入到 Word 中 ,可以使用一種 稱為對(duì)象鏈接與嵌入 (OLE, Object Linking and Embedding) 的 技術(shù)。OLE是在客戶應(yīng)用程序間傳輸和共享信息的一組綜合 標(biāo)準(zhǔn),它是基于組件對(duì)象模型 (COM) 的,允許開發(fā)可在多個(gè)應(yīng) 用程序間互操作的可復(fù)用的即插即用對(duì)象。該技術(shù)獲得了廣 泛的應(yīng)用 ,通過它可以在電子表格、 字處理程序、 財(cái)務(wù)軟件包 及其它應(yīng)用程序間共享或者鏈接數(shù)據(jù)和信息。OLE 是一種面向?qū)ο蟮募夹g(shù) ,利用這種技術(shù)可以開發(fā)可 重復(fù)使用的軟件組件 ,即所謂的 COM 。很多應(yīng)用程序被設(shè)計(jì) 成 COM 容器或者 COM 服務(wù)器類型。 例如 ,繪圖軟件

6、visio 就 是一個(gè) COM 服務(wù)器 ,利用它繪制的圖形可以復(fù)制或者插入到 Word 及其它文檔中 ,并且可以在 Word 文檔中直接進(jìn)行編輯操作。這時(shí) Word 的作用就相當(dāng)于 COM 容器。也可以把 Word文檔或者其一部分復(fù)制或者插入到其它文件如 excel 表格中。 這時(shí) Word 就相當(dāng)于服務(wù)器而 excel 相當(dāng)于容器。其實(shí) ,Word 和 excel 既是 COM 服務(wù)器也是 COM 容器。1解決思路NURBS( 非均勻有理 B 樣條)是描繪自由曲線曲面的有力 工具 ,它在曲面造型、 機(jī)械設(shè)計(jì)等許多方面都有應(yīng)用。 許多繪 制自由曲線曲面的工具也應(yīng)用了這種技術(shù)。可以利用 NURB

7、S 設(shè)計(jì)一種 COM 服務(wù)器來繪制自由曲線。 該服務(wù)器也 可以被象 Word 或者 excel 等 Office 軟件調(diào)用以實(shí)現(xiàn)在 Word 文檔或者 excel 表格中繪制所期望的曲線。2 NURBS 曲線生成原理2.1根據(jù)控制點(diǎn)等信息生成曲線NURBS(非均勻有理B樣條)是80年代中期以后才逐漸 發(fā)展起來的描述自由曲線、曲面的方法。 1991 年 ,STEP(Standard for the Exchange of Product Model Data, 產(chǎn) 品模型數(shù)據(jù)交換標(biāo)準(zhǔn) )把 NURBS 作為定義工業(yè)產(chǎn)品幾何形體 的標(biāo)準(zhǔn)數(shù)學(xué)表達(dá)方法 1 。就如同可以用圓心坐標(biāo)和半徑來表示或控制一個(gè)

8、圓一樣,NURBS曲線可以用控制點(diǎn)、權(quán)因子、節(jié)點(diǎn)及其階數(shù)來表 示或控制。 NURBS 曲線的定義如下 2-3:其中P(u)表示曲線上的點(diǎn),u為曲線參數(shù);Vi為控制點(diǎn)矢 量,Wi為權(quán)因子,Bi,k(u)為k次B樣條基函數(shù)。繪制 NURBS 曲線 ,可以先求出曲線上的多個(gè)點(diǎn),然后用短直線去逼近原曲線。而求 NURBS 曲線上的點(diǎn)可以根據(jù)控 制點(diǎn)、權(quán)因子、 節(jié)點(diǎn)及曲線的階數(shù)來進(jìn)行。 根據(jù)公式 (1),如果 令那么 NURBS 曲線可寫成 :符合 B 樣條曲線的定義。由 de Boor 和 Cox 分別導(dǎo)出的B 樣條遞推定義 ,B 樣條曲線可表示為 2:Vi(i=0,1,n)是控制多邊形頂點(diǎn)(簡(jiǎn)稱控制

9、點(diǎn))矢量,Bi,k(u)稱為B樣條基函數(shù),由下面的遞推公式定義2: 式中 0/0=0 是指當(dāng)分子分母都為 0 時(shí),則定義結(jié)果為 0。 u 是參數(shù),ui是節(jié)點(diǎn),U=u0,u1,um構(gòu)成了 k次B樣條函數(shù)的 節(jié)點(diǎn)矢量 ,節(jié)點(diǎn)是非減序列。 當(dāng)節(jié)點(diǎn)數(shù)為 m+1 、曲線冪次為 k、 控制點(diǎn)數(shù)為n+1時(shí),m、k和n三者之間的關(guān)系為:m=n+k+1。 一般情況下 ,為了使曲線通過控制多邊形的首末端點(diǎn)并和首 末兩條邊相切 ,節(jié)點(diǎn)矢量一般取為如下形式 2:當(dāng) ui+1-ui= 常數(shù)時(shí) ,則表示均勻 B 樣條函數(shù) ,反之稱為非 均勻 B 樣條函數(shù)??梢杂?de Boor 算法求解公式 (5)。對(duì)于 B 樣條曲線

10、,de Boor 算法如下 4:對(duì)于 u ui,ui+1,k i n,有:其中 k 為冪次。 Ck i (u) 則由下述遞推公式定義 :其中:r=1,2,k。對(duì)于三次B樣條,有:其中,根據(jù)以上關(guān)系可以遞推地求出Q(u)。同理,公式、(3)也可以用這種方法求解 ,進(jìn)而公式 (1)可以求解。2.2由型值點(diǎn)生成曲線 由上所述 ,知道了 NURBS 曲線的控制點(diǎn)、權(quán)因子、節(jié)點(diǎn) 及階數(shù)等這些控制信息 ,可以繪制出相應(yīng)的曲線。但實(shí)際情況是,根據(jù)這些信息難以精確地知道該曲線的具體形狀 ,所以難 以準(zhǔn)確地給出想要繪制的曲線的這些控制信息。在實(shí)際過程 中 , 常常是希望所繪制的 NURSB 曲線通過所設(shè)定的點(diǎn)

11、(這些 點(diǎn)通常稱為型值點(diǎn) )。那么需要根據(jù)這些給定的型值點(diǎn)計(jì)算曲 線的控制信息。 這稱為控制多邊形頂點(diǎn)的反求 ,也稱為反求工 程。根據(jù)公式 (5)可將 NURBS 曲線方程改寫為 5其中 :因此,給定型值點(diǎn)Qi及其權(quán)因子hi,i=0,1,n可以建立如 下方程組 5上述方程組數(shù)為 n+1 個(gè),而未知數(shù)為 n+3 個(gè),故需要補(bǔ)充 兩個(gè)方程 ,可以根據(jù)邊界條件補(bǔ)充方程。邊界條件有切矢條 件、自由端條件和閉曲線條件 6 。雖然上述公式已經(jīng)具備了求解的要素,但是要真正求解卻不是容易的事。一是權(quán)因子 hi 的確定現(xiàn)在還是個(gè)難題 5-6, 而是公式 (12)本身的求解就非常困難。為了解決這個(gè)問 題,我們采用

12、近似的方法來進(jìn)行求解。首先我們將權(quán)因子 hi 都設(shè)為 1,這在大部分情況下是可以的 5 。其次我們可以將NURBS 簡(jiǎn)化為準(zhǔn)均勻 B 樣條來建立方程組進(jìn)行求解。對(duì)于準(zhǔn)均勻 B 樣條,反求方程組可寫成矩陣的形式5 。其中 VO=PO、Vn+仁Pn。bl、cl、an、bn、di、dn 根據(jù)不同的邊界條件取不同的值 5 。比如當(dāng)給定切矢條件時(shí) 當(dāng)給定自由端條件時(shí) 公式( 1 3)中的矩陣是一個(gè)三對(duì)角矩陣 ,對(duì)于這樣的矩陣 ,求解時(shí)可以采用追趕法進(jìn)行 7 。根據(jù)這種方法獲得多邊形控 制頂點(diǎn)和權(quán)因子后 ,可以根據(jù)需要調(diào)整控制頂點(diǎn)和權(quán)因子直 到符合要求。然后就可以利用這樣的控制頂點(diǎn)和權(quán)因子求解 整個(gè)曲線。

13、NURBS 的節(jié)點(diǎn)是非均勻的 ,因此如何確定它的節(jié)點(diǎn)矢量 也是一個(gè)關(guān)鍵問題。給定 NURBS 曲線的控制頂點(diǎn)Vi(i=0,1,n)定義一條次非均勻有理B樣條曲線,需確定它的節(jié)點(diǎn)矢量U=u0,u1,un+k+1中的具體的節(jié)點(diǎn)值。如前所述, 為便于對(duì)曲線在端點(diǎn)的行為有較好的控制 ,使曲線首末端點(diǎn) 通過第一個(gè)和最后一個(gè)控制多邊形頂點(diǎn) ,并且使多邊形的首 末兩條邊和曲線在兩端相切 ,通常取兩端節(jié)點(diǎn)的重復(fù)度為k+1,將曲線的定義域取成規(guī)范參數(shù)域,即u 0,1。即:需要確定只是uk+1,un這些所謂內(nèi)節(jié)點(diǎn)的值。求取內(nèi)節(jié)點(diǎn)的方法有里森費(fèi)爾德(Riesenfeld,1975)方法和哈特利(Hartley)-賈

14、德(Judd)方法。前者與曲線次數(shù)的奇偶 性相關(guān) ,而后者與曲線次數(shù)的奇偶性無關(guān),可以采用統(tǒng)一的計(jì)算公式 ,而且在計(jì)算過程中不考慮對(duì)該曲線沒有影響的頂點(diǎn) ,這一點(diǎn)比里森費(fèi)爾德方法更為合理。(Hartley) (Judd)方法6 計(jì)算 NURBS 的節(jié)點(diǎn)矢量公式如下 :3編程實(shí)現(xiàn)及效果3.1 實(shí)現(xiàn)過程用 Visual C+6.0 向?qū)梢粋€(gè)全功能服務(wù)器 ,在其中增 加一個(gè)和 NURBS 曲線相關(guān)的 nurbs 類,然后設(shè)計(jì)菜單和對(duì)話 框,并編寫消息處理代碼。3.2編輯器的功能設(shè)計(jì)的軟件功能有 :1)根據(jù)控制信息繪制曲線。 在如圖 1 所示的對(duì)話框中輸 入曲線的控制點(diǎn)等控制信息 ,按確定繪制曲線

15、 ,如圖 2 所示 (紅 圈代表控制點(diǎn) )。要在 Office 工具如 Word 文檔中繪制圖形 , 可以選擇插入對(duì)象 ,選擇該 COM 服務(wù)器注冊(cè)的對(duì)象 ,點(diǎn)擊后 的操作和直接在該軟件的操作相同,繪制結(jié)果如圖 3 所示 ,在Word 中的編輯狀態(tài)如圖 4 所示。2)根據(jù)型值點(diǎn)生成控制點(diǎn)并生成曲線,可以在 Office 工具如 Word 中進(jìn)行編輯。3)可以根據(jù)用鼠標(biāo)通過調(diào)整控制點(diǎn)實(shí)時(shí)曲線形狀。4)保存控制點(diǎn)等控制信息。5)可以載人控制點(diǎn)等控制信息。6)可以保存和打開程序文件。7)插入到 Office 工具如 Word 文檔保存后 ,再次打開仍舊 可以編輯。3.3需要改進(jìn)的地方 該編輯器還存在著許多不足之處,主要有 :尚不能實(shí)現(xiàn)對(duì)圖形的翻轉(zhuǎn)、拖動(dòng)等操作。 沒實(shí)現(xiàn)調(diào)整權(quán)因子來對(duì)曲線形狀進(jìn)行微調(diào)。 參考文獻(xiàn) :1周濟(jì),周艷紅.數(shù)控加工技術(shù)M.北京:國(guó)防工業(yè)出版 社,2002.2朱心雄.自由曲線曲面造型技術(shù) M. 北京:科學(xué)出版 社,2000.3孫家廣,楊長(zhǎng)貴.計(jì)算機(jī)圖形學(xué)(新版)M.北京:清華大 學(xué)出版社 ,1994.4邊玉超,張莉彥,戴鶯鶯,等.CNC系統(tǒng)中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論