




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第六章 形體的表示及其數(shù)據(jù)結(jié)構(gòu) 與空間任意形體有關(guān)的信息可以分為圖形信息和非圖形信息兩類。圖形信息指構(gòu)成它們的點、線、面的位置,相互關(guān)系及大小等;非圖形信息指形體的顏色、亮度、質(zhì)量、體積等一些性質(zhì)。 形體的圖形信息又可以分為幾何信息和拓?fù)湫畔深?。幾何信息指形體在空間的位置和大小,拓?fù)湫畔⒅附M成形體各部分的數(shù)目及相互間的連接關(guān)系。 第一節(jié) 二維形體的表示 二維圖形的邊界表示 折線法和帶樹法 折線法就是用多段線段形成的折線去逼近曲線帶樹法 帶樹是一棵二叉樹,樹的每個結(jié)點對應(yīng)一個矩形帶段,這樣每個結(jié)點可由八個字段組成,前六個字段描述矩形帶段,后二個是指向兩個子結(jié)點的指針, 即矩形帶段的起點是(xb
2、,yb),終點是(xe,ye)。相對從起點到終點的連線,矩形有兩邊與之平行,兩邊與之垂直,平行兩邊與之距離分別為wl和wr。 設(shè)要表示的曲線是由經(jīng)過適當(dāng)選取已確定的一組離散點P0,P1,Pn序列給出,則生成表示曲線的分辨率為w0的帶樹的算法,可簡略描述如下:BINARY *Create(float P,int i,int j,float W)/* BINARY帶樹節(jié)點類型 Pi至Pj描述折線表示的曲線 W為分辨率 */ Search(P,i,j-i+1,wl,wr); /確定Pi至Pj所有點所形成的矩形帶段的寬度 root=new(BINARY); /獲取帶樹節(jié)點 CBINARY(root,w
3、l,wr,P,i,j); /構(gòu)造根節(jié)點 if (wl+wr w*則轉(zhuǎn)去分別考查該結(jié)點的左右兩個子結(jié)點,對子結(jié)點做同樣的處理。左右子結(jié)點都被顯示的結(jié)點就認(rèn)為是被顯示了,按此看法,顯示帶樹表示的曲線就是顯示帶樹的結(jié)點。 void Display(BINARY *root,float W,float W*) /* BINARY帶樹節(jié)點類型root帶樹根指針 W帶樹分辨率 W*顯示分辨率 */ if (WW*) printf(“error”);return; else if( Width(root)left,W,W*); /顯示左子樹 Display(root-right,W,W*); /顯示右子樹
4、return; 帶樹表示的曲線求交 兩個矩形帶段S1和S2的位置關(guān)系有如下三種:(1) 不相交。(2) 良性相交,即S1的與起點至終點連線平行的兩條邊都與S2相交,S2的與起點至終點連線平行的兩條邊也都與S1相交。(3) 可能性相交,這時不是良性相交,但也不是不相交。 設(shè)表示要求交兩曲線的帶樹己構(gòu)造得足夠精確,即在樹葉一層,來自不同帶樹的矩形帶段或是不相交或是良性相交,而沒有可能性相交出現(xiàn)。 兩帶樹T1和T2表示的兩條曲線是否相交的算法,可以簡略敘述如下: 若T1和T2對應(yīng)的矩形帶段互不相交,那么它們代表的曲線不相交; 若T1和T2對應(yīng)的矩形帶段良性相交,那么它們代表的曲線相交; 若T1和T2
5、對應(yīng)的矩形帶段可能性相交,且T1的面積大于或等T2的面積,那么分別執(zhí)行T2與T1的左右兩個兒子結(jié)點的相交性檢查。 若T1的面積小于T2的面積,則把它們位置對換一下再如上進(jìn)行兩個檢查。若兩個檢查的結(jié)果都是不相交,則認(rèn)為所表示曲線不相交;若兩個檢查中有一個是良性相交,則認(rèn)為所表示曲線相交;若不是上述兩情形,即出現(xiàn)可能性相交,則對可能性相交的兩個矩形帶段中面積較大者,取其對應(yīng)結(jié)點的兩個子結(jié)點,如此進(jìn)行可直到樹葉那一層。 實踐表明用帶樹方法表示曲線對提高計算效率是有幫助的。另外兩個帶樹對并、交等運算是封閉的,與用象素陣列來表示圖形的方法比較空間需求也算是節(jié)省的。 平面圖形的四叉樹表示方法 假定一個平面
6、圖形是黑白的二值圖形,即組成圖形象素陣列的僅有黑色象素值1,白色象素值0,設(shè)表現(xiàn)圖形的象素陣列由2n2n個象素組成。 表示該圖形的四叉樹結(jié)構(gòu)可以如下形成:圖形顯然包括2n2n的正方形中,這個正方形是四叉樹的根結(jié)點。 若圖形整個地占據(jù)這個正方形,則圖形就用該正方形表示,否則將該正方形均分為四個小正方形,每個小正方形邊長為原正方形邊長的一半.它們是根結(jié)點的四個子結(jié)點,可編號為0,1,2,3。 再考查每個小正方形,若整個被圖形占據(jù),則標(biāo)記相應(yīng)結(jié)點為1,可稱為黑結(jié)點。若整個與圖形不相交,則標(biāo)記相應(yīng)結(jié)點為0,可稱為白結(jié)點。 若不是上述兩情形,即與圖形部分相交,則稱相應(yīng)結(jié)點是灰結(jié)點并將其一分為四。當(dāng)再分生
7、成小正方形邊長達(dá)到一個象素單位時,再分終止,此時一般應(yīng)將仍是灰結(jié)點的改為黑結(jié)點,如此形成了平面圖形的四叉樹表示 TREE * tree_4(Box b,Graph g)/ b為正方形 g為二維形體 TREE為四叉樹結(jié)點類型 if (g包含b) 構(gòu)造樹根結(jié)點root(屬性為黑);return(root); else if (b與g之交集為空) return null; else b分成b0,b1,b2,b3四個相同小正方形; 構(gòu)造樹根結(jié)點root(屬性為灰); r1=tree_4(b0,g); r2=tree_4(b1,g); r3=tree_4(b2,g); r4=tree_4(b3,g);
8、r1,r2,r3,r4鏈接為root結(jié)點的四個子結(jié)點; return(root); 四叉樹的存儲結(jié)構(gòu),即規(guī)則方式、線性方式和一對四方式,相應(yīng)的四叉樹也就稱為規(guī)則四叉樹、線性四叉樹和一對四式四叉樹。 規(guī)則四叉樹是用五個字段的記錄來表示樹中的每個結(jié)點,其中一個用來描述結(jié)點的特性,即是灰、黑、白三類結(jié)點中的哪一種。其余四個用于存放指向四個子結(jié)點的指針。 線性四叉樹以某一預(yù)先確定的次序遍歷四叉樹形成一個線性表結(jié)構(gòu) 。 RAabcdBCDefgh。其中R表示根,字母右上角加表示是灰結(jié)點。 一對四式四叉樹的存儲結(jié)構(gòu) 每個結(jié)點有五個字段,其中四個字段用來描述該結(jié)點的四個子結(jié)點的狀態(tài),另一個結(jié)點存放指向子結(jié)點
9、記錄存放處的指針。四個子結(jié)點對應(yīng)的記錄是依次連續(xù)存放的。 為節(jié)省存貯空間,有兩個途徑可以采取。一個是增加計算量;另一個途徑是在記錄中再增加一個字節(jié),一分為四,每個子結(jié)點對應(yīng)2位,表示它的子結(jié)點在指針指向區(qū)域中的偏移。 第二節(jié) 三維幾何模型 幾何元素 形體的模型主要指的就是包含圖形信息所形成的模型。 形體本身的構(gòu)造有一定的層次性,低層部分組合構(gòu)成上一層部分,而上一層部分組合又可以構(gòu)成更高一層的部分,依此類推可形成多層結(jié)構(gòu)。其中,每一層中的部分,我們把它有稱為幾何元素。 點 它是0維幾何元素,有端點、交點、切點、孤立點等形式。 曲線、曲面的應(yīng)用中會涉及到三種類型 的點:型值點 相應(yīng)曲線、曲面必然經(jīng)
10、過的點。控制點 相應(yīng)曲線、曲面不一定經(jīng)過的點,僅 用于確定位置和形狀。插值點 在型值點之間插入的一系列點,用于 提高曲線曲面的輸出精度。 不同的空間中點的表示方式 一維空間中用一元組t表示; 二維空間中用二元組x,y或x(t),y(t)表示; 三維空間中用三元組x,y,z或x(t),y(t),z(t)表示 點是幾何造型中的最基本的元素,曲線、曲面和其它形體都可以用有序的點集描述。 用計算機(jī)存儲、管理、輸出形體的實質(zhì)就是對點集及其連接關(guān)系的處理。 邊 邊是一維幾何元素,是兩個鄰面(正則形體)或多個鄰面(非正則形體)的交界。邊分直線邊和曲線邊。直線邊由起點和終點兩端點確定;曲線邊由一系列型值點或控
11、制點表示,也可以用顯示、隱式方程描述。環(huán) 環(huán)是有序有向邊(直線段或曲線段)組成的面的封閉邊界。環(huán)中的邊不能相交,相鄰兩條邊共享一個端點。環(huán)有內(nèi)外之分,確定面的最大外邊界的環(huán)稱之為外環(huán),通常其邊按逆時針方向排序。而把確定面中內(nèi)孔或凸臺邊界的環(huán)稱之為內(nèi)環(huán),其邊相應(yīng)外環(huán)排序方向相反,通常按順時針方向排序。面 面是二維元素,是形體上一個有限、非零的區(qū)域,它由一個外環(huán)和若干個內(nèi)環(huán)所界定。 面有方向性,一般用其外法向量作為該面的正向。若一個面的外法向量向外,此面為正;否則,為反向面。體 體是三維幾何元素,由封閉表面圍成的空間,它是歐氏空間R3中非空、有界的封閉子集,其邊界是有限面的并集。在實際應(yīng)用中,要求
12、形體是正則形體,即形體上任意一點的足夠小的鄰域在拓?fù)渖蠎?yīng)是一個等價的封閉圓。不滿足上述要求的形體稱為非正則形體。存在懸面、懸邊的形體是非正則形體。體素 體素是可以用有限個尺寸參數(shù)定位和定型的體,常有下面三種定義形式。一組單元實體 長方體、圓柱體、圓錐體、球體。掃描體 由參數(shù)定義的一條(一組)截面輪廓線沿一條(一組)空間參數(shù)曲線作掃描運動而產(chǎn)生的形體。用代數(shù)半空間定義的形體,在此半空間中點集可定義(x,y,z)|f(x,y,z) 0此處的f應(yīng)是不可約的多項式。形體的層次結(jié)構(gòu) 點邊環(huán)面外殼形體。 運動軌跡初始運動面 在幾何造型中最基本的幾何元素是點(V)、邊(E)、面(F),這三種元素一共有九種連
13、接關(guān)系 線框、表面及實體表示 常用的多面體表示法是三表表示法,即采用三個表:頂點表,用來存放多面體各頂點的坐標(biāo);邊表,指出哪兩個頂點之間有多面體的邊;面表,指出哪些邊圍成了多面體的表面。 任意多面體容易得到它的三表表示,但任意三張表卻不一定表示了一個真實的多面體。這里必須滿足的條件至少有以下幾項:頂點表中的每個頂點至少是三邊的端點;邊表中的每條邊是兩個多邊形面的公共邊;每個多邊形面是封閉的等等。 xyz100110010000101111011001122334415667788515263748110592116103127114981256783214頂點表面表邊表 空間正二十面體V20,
14、 的三表表示。 引人一個正數(shù)0,它滿足二次方程2-1=0,因此=(1+ )/21.618034。 XYZ編號xyz編號xyz110123-101213-001-12431-10-1 014-0-13201-2110330-1221-0340-1-邊編號邊編號111,131621,32212,141722,33321,231822,34422,241923,31531,332023,32632,342124,33711,212224,34811,222331,11邊編號邊編號912,232431,121012,242532,131113,212632,141213,222733,111314,2
15、32833,121414,242934,131521,313034,14面編號面編號17,23,151125,6,2928,17,271230,6,26311,16,251311,1,7429,28,12148,1,1259,19,24159,2,13628,21,101614,2,10726,20,131719,3,15814,22,301816,3,20927,5,231917,4,211024,5,282022,4,18三維實體表示方法 從用戶角度來看,形體以特征表示和構(gòu)造的實體幾何表示比較適宜;從計算機(jī)對形體的存儲管理和操作運算角度看,以邊界表示最為實用。 1 構(gòu)造的實體幾何法 構(gòu)造的
16、實體幾何(CSG:Constructive Solid Geometry)法是指任意復(fù)雜的形體都可以用簡單形體(體素)的組合來表示。 形體的CSG表示可看成是一棵有序的二叉樹,稱為CSG樹。其終端結(jié)點或是體素,如長方體、圓錐等;或是剛體運動的變換參數(shù),如平移參數(shù)Tx等;非終端結(jié)點或是正則的集合運算,一般有交、并、差運算;或是剛體的幾何變換,如平移、旋轉(zhuǎn)等。 采用BNF范式可定義CSG樹若下: :=| CSG樹是無二義性的,但不是唯一的,其定義域取決于所用體素以及所允許的幾何變換和正則集合運算算子。 CSG表示的優(yōu)點: 數(shù)據(jù)結(jié)構(gòu)比較簡單,數(shù)據(jù)量比較小,內(nèi)部數(shù)據(jù)的管理比較容易;每個CSG表示都和一
17、個實際的有效形體所對應(yīng);CSG表示可方便地轉(zhuǎn)換成Brep表示,從而可支持廣泛的應(yīng)用; 比較容易修改CSG表示形體的形狀。CSG表示的缺點: 產(chǎn)生和修改形體的操作種類有限,基于集合運算對形體的局部操作不易實現(xiàn); 由于形體的邊界幾何元素(點、邊、面)是隱含地表示在CSG中,故顯示與繪制CSG表示的形體需要較長的時間。并2 特征表示 特征表示是從應(yīng)用層來定義形體,因而可以較好地表達(dá)設(shè)計者的意圖,為制造和檢驗產(chǎn)品和形體提供技術(shù)依據(jù)和管理信息。從功能上看可分為形狀、精度、材料和技術(shù)特征。 形狀特征:體素、孔、槽、鍵等 精度特征:形位公差、表面粗糙度等; 材料特征:材料硬度、熱處理方法等; 技術(shù)特征:形體
18、的性能參數(shù)和特征等。 形狀特征單元是一個有形的幾何實體,是一組可加工表面的集合。如采用長、寬、高三尺寸表示的長方體;采用底面半徑及高度表示的圓柱體均是可選用的形狀特征單元。形狀特征單元的BNF范式可定義如下: :=|;:=長方體|圓柱體|球體|圓錐體|棱錐體|棱柱體|棱臺體|圓環(huán)體|楔形體|圓角體|;:=并|交|差;:=外圓角|內(nèi)圓角|倒角。 3 邊界表示 邊界表示詳細(xì)記錄了構(gòu)成形體的所有幾何元素的幾何信息及其相互連接關(guān)系拓?fù)潢P(guān)系,便于直接存取構(gòu)成形體的各個面、面的邊界以及各個頂點的定義參數(shù),有利于以面、邊、點為基礎(chǔ)的各種幾何運算和操作。 形體的邊界表示就是用面、環(huán)、邊、點來定義形體的位置和形
19、狀。例如,一個長方體由六個面圍成,對應(yīng)有六個環(huán),每個環(huán)由四條邊界定義,每條邊又由兩個端點定義。而圓柱體則由上頂面、下底面和圓柱面所圍成,對應(yīng)有上頂面圓環(huán)、下底面圓環(huán)。 Brep表示的優(yōu)點是: 表示形體的點、邊、面等幾何元素是顯式表示的,使得繪制Brep表示形體的速度較快,而且比較容易確定幾何元素間的連接關(guān)系; 對形體的Brep表示可有多種操作和運算。Brep表示的缺點是: 數(shù)據(jù)結(jié)構(gòu)復(fù)雜,需要大量的存儲空間,維護(hù)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的程序比較復(fù)雜; 修改形體的操作比較難以實現(xiàn); Brep表示并不一定對應(yīng)一個有效形體,即需要有專門的程序來保證Brep表示形體的有效性、正則性等。 八叉樹 假設(shè)要表示的形體V
20、可以放在一個充分大的正立方體C內(nèi),C的邊長為2n,形體V C ,它的八又樹表示可以遞歸定義為: 八叉樹每個結(jié)點與C的一個子立方體對應(yīng),樹根就和C本身對應(yīng)。如果V=C,那么V八叉樹僅有樹根。如果VC,則將C均分為八個子立方體,每個子立方體對應(yīng)根結(jié)點的一個子結(jié)點。只要某個子立方體不是完全空白或完全被V所占據(jù),它就要被八等分,從而它對應(yīng)的結(jié)點也有了八個子結(jié)點。這樣的遞歸判斷及可能分割一直進(jìn)行,直到結(jié)點對應(yīng)的立方體或完全空白,或完全被占據(jù),或其大小已是預(yù)先規(guī)定的體素大小.TREE * tree-8(cube c,graph g)/ c為立方體 g為三維形體 TREE為八叉樹結(jié)點類型 if (g包含c)
21、 構(gòu)造樹根結(jié)點root(屬性為黑);return(root); else if (c與g之交集為空)return null; else 將c分成對應(yīng)的c0,c1,c2,c3,c4,c5,c6,c7尺寸相同小立方體; 構(gòu)造樹根結(jié)點root(屬性為灰); r1=tree-8(c0,g); r2=tree-8(c1,g); r3=tree-8(c2,g); r4=tree-8(c3,g); r5=tree-8(c4,g); r6=tree-8(c5,g); r7=tree-8(c6,g); r8=tree-8(c7,g); 將r1,r2,r3,r4,r5,r6,r7,r8鏈接為root結(jié)點的八個子結(jié)
22、點; return(root); 這時對它與V之交作一定的“舍入”,使體素或認(rèn)為是空白,或認(rèn)為是被V占據(jù)的。這里所謂的體素,就是指被分割后得到的小立方體。 通常稱對應(yīng)立方體被形體V完全占據(jù)的結(jié)點為黑結(jié)點,完全不占據(jù)的為白結(jié)點,部分被占據(jù)的為灰結(jié)點。 存貯結(jié)構(gòu), 有常規(guī)的、線性的、一對八式的八叉樹等等。 八叉樹方法的主要優(yōu)點在于,可以非常方便地實現(xiàn)形體的集合運算 。 八叉樹表示的三維形體的幾何變換 比例變換 旋轉(zhuǎn)變換 相對通過原點的一條任意方向的直線做旋轉(zhuǎn)任意角度的旋轉(zhuǎn)變換。 構(gòu)成原形體的直立的正立方體經(jīng)繞原點任意軸線旋轉(zhuǎn)任意角度后, 一般都成為斜置的。為了使變換后形體的八叉樹仍對應(yīng)一系列直立的
23、正立方體,必須對被斜置立方體部分占據(jù)體素做出選擇,即或認(rèn)為是占據(jù),為黑結(jié)點,或認(rèn)為不占據(jù),為白結(jié)點,這就必然帶來一定的誤差。而且執(zhí)行多次變換后,誤差積累會大到產(chǎn)生嚴(yán)重的錯誤。 第一項措施是保持一個原始的八叉樹做為參考的源樹。設(shè)指定了一次變換R1,接著又要做變換R2,可以計算出復(fù)合變換R=R1R2,然后對原始的八叉樹做一次變換。這樣來避免誤差的積累。 第二項措施是為了盡量減少舍入誤差,可以規(guī)定一個當(dāng)前正要重建的八叉樹,如果它的最底層葉結(jié)點對應(yīng)的體素是部分地為顯示對象所占據(jù),那么當(dāng)且僅當(dāng)這個體素的中心位于某個黑變換后立方體內(nèi)時,這個體素才被規(guī)定為黑,否則就規(guī)定為白。這樣規(guī)定使得一般不會產(chǎn)生原來不存
24、在的孔洞,而不這樣規(guī)定,例如簡單地規(guī)定部分被占據(jù)的體素都為白,則可能在做450左右旋轉(zhuǎn)時原來黑立方體變換為部分占據(jù)若干體素而被指定為白,在變換后形體中間出現(xiàn)斷裂。 設(shè)己采取了上述兩項措施,已知形體變換前的八叉樹表示T1,己計算出 要做的復(fù)合變換R,要確定變換后形體的八叉樹表示T2,可以寫出如下的算法框架:1. 遍歷形體原來的八叉樹T1,對遇到的每個黑結(jié)點,做下述步2。2. 對遇到黑結(jié)點對應(yīng)的正立方體做相應(yīng)變換,得它新的一般來說是斜置的新位置。若這位置已超出定義八叉樹的充分大正立方體C之外,報告出錯;否則執(zhí)行下述的步3。3. 從要計算求出的目標(biāo)樹T2的根開始,檢查2中確定的處于新位置立方體與T2
25、中結(jié)點對應(yīng)的直立的正立方體是否相交,分以下三種情況進(jìn)行處理: (1) 不相交,說明正考查直立正立方體未被占據(jù),可保持為白結(jié)點,不做處理。(2) 直立的正立方體整個被占據(jù),即它在變換后斜置立方體內(nèi),置對應(yīng)結(jié)點為黑結(jié)點。(3) 在上述兩條均不成立時,生成當(dāng)前結(jié)點的八個子結(jié)點,對八個子結(jié)點對應(yīng)的八個直立子立方體,依次再遞歸執(zhí)行步3。如果最終這八個結(jié)點被標(biāo)上同樣特性,比方為黑結(jié)點,則應(yīng)再刪掉這八個子結(jié)點而把它們的共同父結(jié)點置為黑。 算法中,主要工作是檢查某個直立的正立方體與一個斜置的正立方體是否相交,。對所有黑結(jié)點對應(yīng)正立方體處理相同,使得操作可以并行進(jìn)行。線性八叉樹 在對立方體做八等分時,按一致的方
26、式, 對分出的子立方體進(jìn)行編號。若再分共進(jìn)行n層,則每個結(jié)點可以用n位的八進(jìn)制數(shù)的數(shù)串來表示,數(shù)串從左至右,第一位對應(yīng)第一次劃分,第二位對應(yīng)第二位劃分,依此類推。據(jù)此整個八叉樹就可以根據(jù)對其做深度第一遍歷而依次列出的黑結(jié)點的編號序列來表示 。 前圖所示三維形體,其線性八叉樹表示是: 0 x,10,12,13,14,2x,4x,6x,7x 求并運算 C1UC2 兩棵線性八叉樹:C1=122,123,301,302,303,305,307C2=12x,300,302,304,306 將C2的各結(jié)點依次插入到C1的適當(dāng)位置,使插入后編號漸增這一性質(zhì)保持不變。當(dāng)C2中結(jié)點可以包含C1中若干結(jié)點時,則取
27、而代之。另外,如果插入后可以進(jìn)行結(jié)點壓縮,也應(yīng)該立即進(jìn)行:C1UC2=12x,300,301,302,303,304,305,306,307 =12x,30 x 線性八叉樹表示形體的顯示 當(dāng)觀察位置是x10,y10時,最可能被遮擋看不見的是編號2的子立方體,全部依次排出可以是26034715 zl0,y10 優(yōu)先級26034715。前圖表示形體的線性八叉樹0 x,10,12,13,14,2x,4x,6x,7x 按結(jié)點應(yīng)顯示次序排出的序列就是:2x,6x,0 x,4x,7x,12,10,13,14 z1 y1 x1 優(yōu)先級0007356124000371256040051743062001530
28、74260000260347150000004216537第三節(jié) 分形 分形的概念 三分康托(Cantor)集 設(shè)E0是閉區(qū)間0,1,即E0是滿足0 x1的實數(shù)x組成的點集;E1是E0去掉中間1/3之后的點集,即E1是兩個閉區(qū)間0,1/3和1/3,2/3;E2是分別去掉E1中兩個區(qū)間的中間1/3之后的點集,即E2已經(jīng)是四個閉區(qū)間。此過程要繼續(xù)進(jìn)行,Ek是2k個長度為1/3k的閉區(qū)間組成的點集。三分康托集F是屬于所有的Ek的點組成的集,即 。 F可以看成是集序列Ek當(dāng)k趨于無窮時的極限。只能畫出k取定時的某個Ek。當(dāng)k充分大時,Ek是對F的很好的近似的表現(xiàn) 三分康托集是區(qū)間0,1中的可以展成以3
29、為底的幕級數(shù)的下面形式的數(shù)組成的:a13-1+a23-2+a33-3 其中ai的取值限制為0或2,不取1。為看清這一事實,注意從E0得到E1時,去掉的是ai=1的數(shù),從E1得E2時,去掉的是a2=1的數(shù),并以此類推。 三分康托集具有的一些值得注意的特征,這些特征對許多其它的分形也是大體上適合的。 (1) F是自相似的。E1的兩個區(qū)間0,1/3,1/3,2/3的每一個,其內(nèi)部F的部分與F整體相似,相似比為1/3。(2) F具有“精細(xì)結(jié)構(gòu)”,即它包含有任意小比例的細(xì)節(jié)。 (3) F的實際定義是簡單的和明確的。 (4) 傳統(tǒng)的幾何學(xué)很難描述F的性質(zhì),因為F不是滿足某些簡單條件的點的軌跡,也不是任何簡
30、單的方程的解的集合。(5) F的局部幾何性質(zhì)也很難描述,在它的每點附近都有大量被各種不同間隔分開的其它點。(6) 按傳統(tǒng)幾何學(xué)中的長度概念,F的長度為零。就是說,盡管從不可數(shù)集合這點上說F是一個相當(dāng)大的集,但它卻沒有長度,或者說長度不能對F的形狀或大小提供有意義的描述。von Koch曲線 稱集合F是分形,即認(rèn)為它具有 下面典型的性質(zhì): (1)F具有精細(xì)的結(jié)構(gòu),即有任意小比例的細(xì)節(jié)。 (2) F是如此的不規(guī)則以至它的整體和局部都不能 用傳統(tǒng)的幾何語言來描述。 (3) F具有某種自相似的形式,可能是近似的或是統(tǒng) 計的。 (4) 一般地,F的分形維數(shù)大于它的拓?fù)渚S數(shù)。 (5) 在大多數(shù)令人感興趣的
31、情形下,F以非常簡單 的方法定義,可能由迭代產(chǎn)生。 Hausdorff維數(shù) 考慮一個簡單的幾何圖形,取一個邊長為1的正方形,若每邊擴(kuò)大2倍,則正方形面積放大4倍,其數(shù)學(xué)表達(dá)式為22=4,這是2維圖形。對3維圖形,如考慮邊長為1的立方體,令每邊長放大2倍,則立方體體積擴(kuò)大8倍,其數(shù)學(xué)表達(dá)式為23=8。 類似地,對一個Df維的幾何對象,若每邊長擴(kuò)大L倍,則這個幾何對象相應(yīng)地放大K倍,歸納前述結(jié)果,Df,L,K三者間的關(guān)系式應(yīng)為: LDf=K 解Df, Df=lnK/lnL (1) 這里Df不必是整數(shù)。這就是Hausdorff引人的維數(shù)概念,可以稱為Hausdorff維數(shù)。 假定有一個單位正方形,把
32、它每邊三等分得九個小的正方形,九個小正方形面積總和是原單位正方形面積,即9(1/3)2=1?,F(xiàn)在我們把Df維的幾何對象等分為N個小的幾何圖形,則每個小圖形每維縮小為原來的r倍,而N個小圖形的總和應(yīng)有NrDf=1。 這時解出 ,有: (2) 容易看出式(1)和(2)本質(zhì)上是相同的,即這樣引入的也是Hausdorff維數(shù) von Koch曲線,每次分為4個小圖形,每個小圖形縮小1/3倍,故其Hausdorff維數(shù) 為: 分形一般算法 規(guī)則分形的生成算法。對算法的輸入是事先給定的一個整數(shù)k、源形E0及生成規(guī)則,算法操作步驟如下: void Fractal(Rule R,int k,Source Eo
33、 ,int m) /* R 分形規(guī)則 k 分形迭代層數(shù) m 分形組成數(shù) Eo 源形 */ i=0;j=1;Q=;A0=Eo; / i記層數(shù) j記生成部分圖形的數(shù)目 隊列Q保存圖形 A0記源形do do calculate(A0,R, A1,A2, Am); /由A0和R計算它的m個分解部分; draw(Al,A2, ,Am); /圖形繪制 insert(A1,A2,Am,Q);/生成各部分圖形依次加到隊尾 A0=delete(Q); /從隊頭取出一個部分圖形 j=j+1; while (j=m i); j=1;i+; /進(jìn)入下一層 while(i=k); /結(jié)束判斷 von Koch曲線 其源
34、形E0可以是一條線段, 記其端點坐標(biāo)為P0,P1。在算法步1,應(yīng)令A(yù)0=E0=(Po,Pl ),在算法步2,需要依據(jù)Po,P1 ,計算圖中P2,P3,P4三點的坐標(biāo)。 這樣m=4,分別得到四個部分圖形是A1=(P0,P2),A2=(P2,P3),A3=(P3,P4),A4=(P4,P1)。在算法步3,可畫出四條線段P0P2,P2 P3, P3 P4, P4P1,擦去前次畫線時可能畫出的P2P4部分。Von Koch算法 利用自相似變換來繪制分形 設(shè)D是歐氏空間Rn的閉子集,映射S:DD稱為是D上的壓縮,如果對所有D上的點x,y,存在一個數(shù)c,0c1,能使|S(x)-S(y)| c|x-y|。如
35、果其中等號成立,即若|S(x)-S(y)|=c|x-y|,則S把一個集變成了它的幾何相似集,此時映射S稱為是相似的。 設(shè)S1,Sn是壓縮,稱D的子集F對變換S1, ,Sn是不變的,如果 三分康托集的情形,這時令S1,S2是RR的變換,分別由 P0和P1的坐標(biāo)是(0,0)和(1,0),則可以計算求出P2,P3,P4的坐標(biāo)是 自相似變換S1和S2是平面變換,可一般地設(shè)變換矩陣為: 第一個變換S1把點P0,P1,P3,依次變到Po, P3,P2,這就得到: 于是有 第二個變換S2把點P0,P1,P3,依次變到P3,P1,P4,這就得到: 因此繪制von Koch曲線void von_Koch_dis
36、play ( ) x1=0;y1=0;s=1;u=1;/ (x1,y1)為初始點do x2=1/2.0*x1+sqrt(3)/6*y1;y2= sqrt(3)/6*x1-1/2.0*y1; x3=1/2.0*x1+ sqrt(3)/6*y1+1/2.0;/變換 y3=- sqrt(3)/6*x1-1/2.0*y1+sqrt(3)/6; Setpixel(x2,y2, RGB(0,0,0); /畫點 Setpixel( (x3,y3), RGB(0,0,0); Ps.x=x2; Ps.y=y2;Ps+1.x=x3; Ps+1.y=y3;s=s+2; /存貯 x1=Pu.x;y1= Pu.y;u+
37、; /準(zhǔn)備下次 while (u=k);/結(jié)束判斷 上面的變換能產(chǎn)生很緊松樹樹枝的圖象。 Julia和Mandelbrot集 設(shè)有復(fù)數(shù)域上如下形式的二次函數(shù): f(z)=z2+c 其中c是復(fù)數(shù)值常數(shù),做迭代操作: zn+1= zn2+c,n=0,1,2, 研究的問題是:1.給定z0,當(dāng)參數(shù)c在什么范圍內(nèi)取值能保證|zn|有界2.當(dāng)c給定,如何選取z0,使|zn|有界? 上述迭代,當(dāng)c=0時,可以有以下三種情況:1. 序列中的數(shù)按模來說越來越小,且趨于零。這時說零是zz2的吸引子。所有與坐標(biāo)原點相距小于1的點都產(chǎn)生趨向零的序列。2. 序列中的數(shù)按模來說越來越大,且趨向無窮,這時無窮也稱為過程的吸引子。與坐標(biāo)原點的距離超過1的所有點都產(chǎn)生趨向無窮的序列;3. 距坐標(biāo)原點為1的點,序列總是產(chǎn)生在上面兩個吸引區(qū)域之間的邊界上,此時邊界恰為復(fù)平面上的單位圓周。 對于上述迭代,當(dāng)c 0時,吸引子不再是零,吸引區(qū)域的邊界不再是光滑的,而是具有自似形的分形結(jié)構(gòu),這種邊界稱為Julia集。 在復(fù)平面上,使zz2+c的迭代過程成為有界的復(fù)參數(shù)c的集合叫做Mandelbro
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 危重癥護(hù)理管理
- 衡水市消防救援支隊政府專職消防隊員招聘筆試真題2024
- 車輛及司機(jī)租賃合同協(xié)議
- 武館教練協(xié)議書
- 違規(guī)建筑免責(zé)協(xié)議書范本
- 退貨扣款協(xié)議書范本
- 車輛轉(zhuǎn)租協(xié)議書范本
- 配套開荒服務(wù)合同協(xié)議
- 實驗動物醫(yī)學(xué)倫理
- 2025年建造師基礎(chǔ)知識試題及答案
- 2025年入團(tuán)考試一覽無遺試題及答案
- 公司檔案及文件管理制度
- 2025年四川筠連縣國有資本投資運營有限公司招聘筆試參考題庫含答案解析
- 2024年貴州遵義公開招聘社區(qū)工作者考試試題答案解析
- 2025年全國低壓電工證(復(fù)審)考試筆試試題(300題)含答案
- 2025至2030中國注射用重組人腦利鈉肽行業(yè)運行態(tài)勢及未來趨勢研究報告
- 文言常識測試題及答案
- 入團(tuán)考試測試題及答案
- 中班早期閱讀《跑跑鎮(zhèn)》課件
- 【語文試卷+答案 】上海市崇明區(qū)2025屆高三第二學(xué)期第二次模擬考試(崇明二模)
- Unit 4 第5課時 B learn學(xué)習(xí)任務(wù)單
評論
0/150
提交評論