• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      B樣條曲面構(gòu)建算法設(shè)計(jì)與實(shí)現(xiàn)

      2019-09-10 07:22:44李博吳麗娟韓松焦興強(qiáng)吉登清
      河南科技 2019年2期

      李博 吳麗娟 韓松 焦興強(qiáng) 吉登清

      摘 要:本文重點(diǎn)介紹了B樣條曲面的基本概念、性質(zhì)和分類,主要研究B樣條曲面的基本原理和構(gòu)建算法的實(shí)現(xiàn),通過對B樣條基函數(shù)進(jìn)行詳細(xì)研究,引入兩個參數(shù)后,能更加靈活地調(diào)整曲線。最后,基于OpenGL生成兩片均勻B樣條曲面,并給出了運(yùn)行結(jié)果。

      關(guān)鍵詞:B樣條曲線;B樣條曲面;曲面構(gòu)建

      中圖分類號:TP391.7 文獻(xiàn)標(biāo)識碼:A 文章編號:1003-5168(2019)02-0014-03

      Design and Implementation of B-spline Surface Construction Algorithm

      LI Bo1 WU Lijuan1 HAN Song1 JIAO Xingqiang1 JI Dengqing2

      (1.Shenyang Normal University,Shenyang Liaoning 110034;2.Wuyi University,Jiangmen Guangdong 529030)

      Abstract: This paper focused on the basic concept, properties and classification of B-spline surface. It mainly studied the basic principle of B-spline surface and the realization of its construction algorithm. Through the detailed study of B-spline basis function, the curve could be adjusted more flexibly by introducing two parameters. Finally, two uniform B-spline surfaces were generated based on OpenGL, and the running results were given.

      Keywords: B-spline curve;B-spline surface;surface construction

      目前,人們的生產(chǎn)和生活越來越受到計(jì)算機(jī)圖形學(xué)的影響,計(jì)算機(jī)圖形學(xué)不斷影響每一個使用計(jì)算機(jī)的人。計(jì)算機(jī)輔助幾何設(shè)計(jì)(CAGD)是一種伴著船舶、汽車、飛機(jī)等現(xiàn)代制造工業(yè)而興起的應(yīng)用學(xué)科,其與計(jì)算機(jī)圖形學(xué)有著密不可分的聯(lián)系。計(jì)算機(jī)圖形學(xué)中較常用的曲線曲面有插值曲線曲面、Bezier曲線曲面、B樣條曲線曲面和非均勻有理樣條曲線曲面等。B樣條曲線曲面有著良好的局部性質(zhì),因此,在工程設(shè)計(jì)中得到了越來越廣泛的應(yīng)用[1-5]。

      1 B樣條曲線曲面

      1.1 B樣條曲線的優(yōu)點(diǎn)

      Bezier曲線具有諸多優(yōu)越性,但也存在不足:①特征多邊形頂點(diǎn)數(shù)決定了其階次數(shù),當(dāng)[n]較大時,不僅計(jì)算量增大,穩(wěn)定性降低,而且控制頂點(diǎn)對曲線的形狀控制減弱;②不具有局部性,即修改一控制點(diǎn)對曲線產(chǎn)生全局性影響。

      1972年,Gordon等用B樣條基代替Bernstein基函數(shù),從而改進(jìn)上述缺點(diǎn)。首先,B樣條曲線比Bezier曲線更貼近控制多邊形,且更光滑,其基函數(shù)的多項(xiàng)式次數(shù)可根據(jù)需要給定。其次,B樣條曲線能對曲線進(jìn)行局部修改,由于B樣條曲線是分段構(gòu)成的,所以控制多邊形的頂點(diǎn)對曲線的控制靈活而直觀。修改某一控制點(diǎn)只會引起與該控制點(diǎn)相鄰近的曲線形狀發(fā)生變化,遠(yuǎn)處的曲線形狀不受影響,這使得B樣條廣泛應(yīng)用于交互式自由曲線曲面的設(shè)計(jì)[6-10]。

      1.2 B樣條曲線的定義

      B樣條曲線定義如下:

      [P(t)=i=0nPiNi(t),tmin≤t≤tmax,2≤k≤n+1] ? ? ? ? ?(1)

      其中,[Pi]是控制多邊形的頂點(diǎn)集;[i]是大于0的整數(shù),是B樣條的序號;[k]表示B樣條的冪次;[Pi]是B樣條曲線的[n+1]個控制頂點(diǎn)的頂點(diǎn)集。將各個控制頂點(diǎn)順序連線形成的折線圖形稱為控制多邊形。[Ni,k(t)]是定義在節(jié)點(diǎn)矢量[T]上的[k]次B樣條基函數(shù),用[Ni,k(t)]表示第[i]個[k]次([k+1])階B樣條基函數(shù),是由節(jié)點(diǎn)矢量的參數(shù)序列[T:t0≤t1≤...≤ti+k+1]所決定的[k-1]次分段多項(xiàng)式樣條。參數(shù)[t]的取值構(gòu)成一個非遞減的參數(shù)序列[T],被稱為節(jié)點(diǎn)向量。任意一個控制點(diǎn)最多只能影響[k]段曲線的形狀。

      1.3 B樣條曲面的定義

      B樣條曲面由B樣條曲線拼接而成,是通過兩個方向的控制頂點(diǎn)網(wǎng)格、兩個節(jié)點(diǎn)矢量和單變量的B樣條基函數(shù)的乘積來定義。一塊[m×n]次張量積B樣條曲面片,其方程為:

      [Pu,v=i=0mj=0nPijNi,puNj,qv] ? ? ? ? ? ?(2)

      其中,節(jié)點(diǎn)矢量[u]中含有[m+1]個節(jié)點(diǎn),節(jié)點(diǎn)矢量[v]中含有[n+1]個節(jié)點(diǎn),此時就構(gòu)成一張控制網(wǎng)格,稱為B樣條曲面的特征網(wǎng)格。[Ni,pu]和[Nj,qv]是節(jié)點(diǎn)向量[u]和[v]按de Boor-Cox遞推公式?jīng)Q定的B樣條混合函數(shù)。

      1.4 B樣條曲面的性質(zhì)

      ①嚴(yán)格的凸包性。如果[Pt]位于控制頂點(diǎn)所建立的凸包內(nèi),曲線嚴(yán)格位于控制多邊形的凸包內(nèi)(見圖1)。

      ②分段參數(shù)多項(xiàng)式。[Pt]在每個區(qū)間上都是次數(shù)不高于[k-1]次的多項(xiàng)式。

      ③可微性與連續(xù)性。[Pt]在每一曲線段內(nèi)部是無限可微的,在定義域內(nèi)重復(fù)度為[k]的節(jié)點(diǎn)處,則使[p-k]次可微或具有[p-k]階參數(shù)連續(xù)性。

      ④幾何不變性。B樣條曲線的形狀和位置與坐標(biāo)系的選取無關(guān)。

      ⑤局部可調(diào)性。如果改變某個控制頂點(diǎn)的位置,只會影響那個頂點(diǎn)所對應(yīng)的曲線段,對其他部分曲線沒有影響;同理,如果想改變某一段曲線的形狀,只需要改變對應(yīng)的控制頂點(diǎn),與其他頂點(diǎn)無關(guān)。

      ⑥近似性。在控制頂點(diǎn)不共線的情況下,當(dāng)次數(shù)越高時,這組控制頂點(diǎn)所對應(yīng)的B樣條曲線越光滑。

      1.5 曲面的分類

      B樣條曲面由一系列曲線拼接而成,在分類上同樣按照節(jié)點(diǎn)矢量分為三類:均勻B樣條曲面、準(zhǔn)均勻B樣條曲面和非均勻B樣條曲面。

      ①均勻B樣條曲面,節(jié)點(diǎn)矢量[u,v]滿足條件:

      [Δui=ui+1-ui=const>0,i=k,...,m+k] ? ? ? ? ? ? ? ? ?(1)

      [Δvj=vj+1-vj=const>0,j=1,...,n+l] ? ? ? ? ? ? ? ? (2)

      ②準(zhǔn)均勻B樣條曲線,節(jié)點(diǎn)矢量[u,v]滿足條件:

      [u0=...=uk,um+1=...=um+k+1,Δui=ui+1-ui=const>0,i=k,...,m] ? ? ? ? (3)

      [v0=...=v1,vn+1=vn+j+1,Δvj=vj+1-vj=const>0,j=1,...,n] ? ? ? ? ?(4)

      ③非均勻B樣條曲面。對于這種類型的B樣條曲面,只要節(jié)點(diǎn)矢量滿足以下條件即可:節(jié)點(diǎn)序列非遞減;兩端節(jié)點(diǎn)的重?cái)?shù)小于等于次數(shù)+1,內(nèi)節(jié)點(diǎn)的重?cái)?shù)小于等于次數(shù)。

      2 B樣條曲面的構(gòu)建

      2.1 算法設(shè)計(jì)

      三次B樣條曲面是由三次B樣條曲線拓廣而來,以兩組正交的三次B樣條曲線控制點(diǎn)構(gòu)造空間網(wǎng)格來生成曲面。給定了36個控制點(diǎn),通過給定的控制點(diǎn)生成一個6×6的網(wǎng)格,對B樣條曲面基函數(shù)進(jìn)行算法設(shè)計(jì),分別從[u]向和[v]向進(jìn)行賦值,讓控制點(diǎn)與基函數(shù)相乘求和,從而生成對應(yīng)的型值點(diǎn),連接型值點(diǎn),通過編程進(jìn)行循環(huán)操作,進(jìn)而生成B樣條曲面。

      2.2 算法實(shí)現(xiàn)

      [k×l]階B樣條曲面[Pt,s]定義為:

      [Pt,s=i=0nj=0mPijNi,ktNj,ts] ? ? ? ? ? ? ? ? ? ? ? ?[tk-1≤t≤tn+1,st-1≤s≤st+1] ? ? ? ? ? ? ? ? ? ? ? ? (5)

      其中,[Pij0≤i≤n,0≤j≤m]為控制頂點(diǎn),[Ni,kt]和[Nj,ts]分別為[k]階和[l]階B樣條基函數(shù)。節(jié)點(diǎn)向量為[T1]和[T4],[T4]:[0,0,...,0t,st,...,sm,1,...,1t]。

      設(shè)在t方向上擴(kuò)展曲面[P(t,s)]到[m+1]目標(biāo)點(diǎn)[Pn+1,j,j=0,1,...m]。設(shè)[P(t,s)]中沿t方向的[m+1]條B樣條曲線為:

      [Pjt=i=0nPijNikt,j=0,1...,m] ? ? ? ? ? ? ? ? (6)

      設(shè)與[Pjt]相應(yīng)的第[j]條擴(kuò)展曲線為[Qjt],與[Qjt]相應(yīng)[a]為[aj],則與目標(biāo)點(diǎn)[Pn+1j(j=0,1,...m)]相應(yīng)的節(jié)點(diǎn)值為所有[a(j=0,1,...m)]的加權(quán)平均,即

      [u=1+1m+1j=0maj] ? ? ? ? ? ? ? ? ? ? ? ? ?(7)

      三次B樣條曲線的矩陣表達(dá)式:

      [Pt=t3t2t1?16?-13-313-630-30301410?P0P1P2P3=T?MB?MG] ? ? ? ? ?(8)

      其中,[MB]為三次B樣條曲線的系數(shù)矩陣,[MG]為幾何矩陣,為四個控制點(diǎn)的位置矢量。三次B樣條曲面時由三次B樣條曲線拓廣而來,以兩組正交的三次B樣條曲線控制點(diǎn)構(gòu)造空間網(wǎng)格來生成曲面。依次用線段連接點(diǎn)列[Pi,ji=0,1,2,3;j=0,1,2,3]中相鄰兩點(diǎn)所形成的空間網(wǎng)格稱為控制網(wǎng)格。三次B樣條曲面的定義為:

      [Pu,v=i=03j=03pijNi,3uNj,3v],[u,v∈0,1×0,1] ? ? ? (9)

      [Pu,v=N0,3(u)N1,3(u)N2,3(u)N3,3(u)?P0,0P0,1P0,2P0,3P1,0P1,0P1,2P1,3P2,0P2,0P2,2P2,3P3,0P3,0P3,2P3,3?N0,3(v)N1,3(v)N2,3(v)N3,3(v)] ? ? ? ? ? ?(10)

      其中,[N0,3u],[N1,3u],[N2,3u],[N3,3u],[N0,3v],[N1,3v],[N2,3v],[N3,3v]是三次B樣條基函數(shù)。

      [N0,3u=16-u3+3u2-3u+1N1,3u=163u3-6u2+4N2,3u=16-3u3+3u2+3u+1N3,3u=16u3], ? ? ? ? ? ? ? ? ? ?[N0,3v=16-v3+3v2-3v+1N1,3v=163v3-6v2+4N2,3v=16-3v3+3v2+3v+1N3,3v=16v3] ? ? ? ? ? ? ? (11)

      將式(10)代入式(11)得:

      [Pu,v=136?u3u2u1?-13-313-630-30301410?P0,0P0,1P0,2P0,3P1,0P1,1P1,2P1,3P2,0P2,1P2,2P2,3P3,0P3,1P3,2P3,3?-13-313-604-33311000?v3v2v1] (12)

      三次B樣條曲面的矩陣表示為

      [Pu,v=U?Mb?P?MTb?VT] ? ? ? ? ? ? (13)

      其中:

      [U=u3u2u1] ? ? ? ? ? ? ? ? ? ? ? (14)

      [V=v3v2v1] ? ? ? ? ? ? ? ? ? ? ? ?(15)

      [Mb=16?-13-313-630-30301410] ? ? ? ?   ? ? ? ? ? (16)

      [P=P0,0P0,1P0,2P0,3P1,0P1,1P1,2P1,3P2,0P1,2P2,2P2,3P3,0P1,3P3,2P3,3] ? ? ? ? ? ? ? ? ?(17)

      2.3 運(yùn)行結(jié)果分析

      三次B樣條曲面是由三次B樣條曲線交織而成。曲面生成時可以先固定[u],變化[v]得到一簇三次B樣條曲線;然后固定[v],變化[u]得到另一簇三次B樣條曲線。與三次B樣條曲線相似,雙三次B樣條曲面一般情況下不通過控制網(wǎng)格的任何頂點(diǎn)。

      3 結(jié)論

      本文就B樣條曲線、曲面的定義、性質(zhì)、分類以及算法等相關(guān)知識進(jìn)行了全面系統(tǒng)的介紹,基于B樣條曲面方程,通過計(jì)算B樣條曲線的節(jié)點(diǎn)矢量以及B樣條基函數(shù)等,能夠得到曲面上的任意一點(diǎn)并生成B樣條曲面。

      參考文獻(xiàn):

      [1]郭懷天.B樣條曲線及曲面研究[D].合肥:合肥工業(yè)大學(xué),2012.

      [2]吳學(xué)毅.計(jì)算機(jī)圖形學(xué)原理與實(shí)踐[M].北京:印刷工業(yè)出版社,2008.

      [3]傅雅寧.計(jì)算機(jī)圖形學(xué)教程[M].北京:國防工業(yè)出版社,2005.

      [4]梁錫坤.B樣條曲線曲面理論及其應(yīng)用研究[D].合肥:合肥工業(yè)大學(xué),2003.

      [5]孫家廣,胡事民.計(jì)算機(jī)圖形學(xué)基礎(chǔ)教程[M].北京:清華大學(xué)出版社,2005.

      [6]孔正興,周良,鄭宏源.計(jì)算機(jī)圖形學(xué)基礎(chǔ)教程[M].北京:清華大學(xué)出版社,2003.

      [7]王洪艷.B樣條曲線曲面造型研究[D].哈爾濱:哈爾濱理工大學(xué),2010.

      [8]K. Waters. A Muscle Model for Animating Three Dimensional Facial Expression[J] .Computer Graphics(SIGGRAPH’87),1987(4):17-24.

      [9]楊曉靜.B樣條曲面構(gòu)造方法的研究與實(shí)現(xiàn)[D].北京:北京工業(yè)大學(xué),2003.

      [10]何芳.移動曲面擬合法在復(fù)雜曲面造型中的研究與應(yīng)用[D].武漢:武漢理工大學(xué),2008.

      永丰县| 荣成市| 信宜市| 呼伦贝尔市| 阿图什市| 凤庆县| 湘潭市| 鹤庆县| 老河口市| 博罗县| 安乡县| 乌兰浩特市| 兴仁县| 昌宁县| 忻城县| 中山市| 黄浦区| 永靖县| 饶阳县| 龙里县| 勐海县| 盐城市| 九寨沟县| 三河市| 兖州市| 穆棱市| 丁青县| 彰化县| 阿拉善左旗| 泰和县| 铜鼓县| 嵊泗县| 新绛县| 清水河县| 岳普湖县| 崇阳县| 钦州市| 建水县| 德昌县| 图们市| 麦盖提县|