999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于L系統的三維分形樹仿真

2021-07-24 10:00:34蔣杏麗張巖
電子測試 2021年13期
關鍵詞:定義規則生長

蔣杏麗,張巖

(沈陽師范大學數學與系統科學學院,遼寧沈陽,110034)

0 引言

分形,通常被定義為“一個粗糙或零碎的幾何形狀,可以分成數個部分,且每一部分都是整體縮小后的形狀”,即具有自相似的性質[1,2]。分形技術通常用來在計算機上模擬出自然界中具有非規則生長特性的植物。分形幾何的概念 是美籍法國數學家曼德布羅[3]首先提出的,最初分形圖的計算機繪制也只是停留在二維平面,后來,一個分形體愛好者丹尼爾·懷特提出一個大膽的方法,創造出令人稱奇的3D分形影像[4],并將它們命名為芒德球。本文在Matlab平臺上利用L系統算法實現了三維虛擬場景的樹木仿真,有效的展示了樹木的生長和拓撲結構。

1 L系統算法

1.1 L系統的原理

L系統是由生物學家Aristid Lindenmayer[5]于1968年引進的一種字符串迭代重寫機制[6],是分形理論的一個重要分支,被認為是植物生長的數學理論。一個L系統可以用一個三元組(V,w,p)[7]來表示,其中V表示字母表;w是V中的一個非空字符串,代表初始形狀;p是一個有限集合,代表重寫規則。L系統的核心是字符串重寫[8,9,10],即使用一個重寫規則或產生式的集合,對一開始定義好的初始字符串進行有限次數的迭代,再用龜形幾何解釋得到的新圖形去改寫替換原始的字符串[11],最后獲取分形圖形完成三維仿真。

1.2 龜形解釋

由于L系統的產生式、初始元以及重寫后得到的元素都是以字符串的形式存在,所以為了讓這些字符串能夠具體的表示出某種圖形,將其與植物模擬聯系起來,我們引入了龜形這個概念。

龜形的當前狀態由一個三元組(x,y,a)[12,13]來定義,其中笛卡兒坐標(x,y)表示海龜的位置,角度a為海龜的前進方向,可以解釋為海龜面對的方向。給出步長d和角度的增量sita,海龜根據不同符號所代表的命令做出反應。

上面講述的龜形解釋是二維的,它可方便地擴展到三維空間,要對字符串進行三維龜圖解釋,關鍵是用三個向量H,L和U來表示空間龜的當前方位[14,15,16]。H、L、U分別為龜頭的指向、左方、上方,這些向量具有單位長度且方向正交,即滿足方程H X L=U。龜的旋轉可表示為方程: (H,L,U) =(H,L,U) R[17],其中R是3X3的旋轉矩陣。以下分別是繞矢量U、L和H旋轉α的旋轉矩陣R[18]:

龜形位置初始化為笛卡爾坐標系統的原點,頭矢量H指向y軸的正方向,左矢量L指向x軸負方向,向上的矢量U指向z軸的正方向。龜形根據參數的解釋決定前進的方向和狀態變化,如果有多個參數,第一個參數值決定龜的狀態。本文中L系統用到的主要圖形符號、其幾何意義及具體實現代碼如下表1。

表1 圖形符號解釋

2 三維分形樹的可視化

本研究利用Matlab進行模擬仿真。在模擬仿真三維生成樹的時候,會產生大量的數據,造成存儲和計算的能力[19]。MATLAB提供面向大數據處理的性能,可以方便、高效地格式化無法進入內存的文件數據,從而獲得實際意義的實時處理效率[20]。

首先定義好樹的初始字符串和產生式規則,設置樹的生長深度來控制樹的規模。再利用重寫函數repmat()根據定義好的重寫規則對字符串進行迭代重寫,最后使用strrep()函數進行生長樹替換,將初始字符串替換成重寫之后的字符串。

實現代碼:

nV=15; %縱向會有nV個節點的分支

nH=8; %橫向會有nH個節點的分支

SET=’X’; %初始字符串

np=10; %主干上分枝數量

pathp=’’; %主干上空字符串

for i=1:np

pathpi=[‘[+’,repmat(‘-’,1,i),’Y]’]; % 字符串重寫

pathp=[pathp,pathpi]; %連接每次重寫后的字符串

end

pT=[‘T’,pathp,’X’]; %根據重寫規則X對T中起始元是pathp字符串進行重寫

ns=5; %主枝上分支數量

paths=’’; %主枝上空字符串

for i=1:ns

pathsi=[‘[’,repmat(‘/’,1,i),’S]’]; % 字符串重寫

paths=[paths,pathsi]; %連接每次重寫后的字符串

end

pS=[‘P’,paths,’Y’]; %根據重寫規則Y對P中起始元是paths字符串進行重寫

for k=2:nV;

SET=strrep(SET,’X’,pT); %生長樹替換,縱向替換成pT字符串

end

for k=2:nH;

SET=strrep(SET,’Y’,pS); %生長樹替換,橫向替換成pS字符串

end

生長樹替換完成后建立三維坐標以便在三維虛擬空間呈現出分形樹的結構。首先求得生長控制參數諸如樹干長度、樹干延伸次數、樹干收縮系數、樹枝相對偏移角度以便在后續龜形圖的實現中直接使用。其次設置龜形起點,初始方向,旋轉角度,利用龜形解釋依次去讀取字符串的每個字符并解釋為幾何語言繪制出對應的圖形。

運行程序后,在二維分形樹圖形界面上點擊三維旋轉按鈕,拖動圖形即可出現三維分形樹圖像,如圖1和圖2所示。

圖1 二維分形樹

圖2 三維立體分形樹

3 結論

本文在已有的二維分形樹研究的基礎上進行了空間維度的擴展,在Matlab平臺上利用L系統對樹木結構進行解析,再根據定義的重寫規則對樹木初始字符串不斷的迭代重寫,完成樹木的分形,最后使用龜形解釋對分形得到的字符串用幾何語言描繪成圖像,實現了在三維空間的樹木建模。但該模型仍然存在不足之處,今后可以有一個改進點,即更加生動形象的模擬出樹枝搖曳的情形。

猜你喜歡
定義規則生長
撐竿跳規則的制定
數獨的規則和演變
碗蓮生長記
小讀者(2021年2期)2021-03-29 05:03:48
生長在哪里的啟示
華人時刊(2019年13期)2019-11-17 14:59:54
生長
文苑(2018年22期)2018-11-19 02:54:14
讓規則不規則
Coco薇(2017年11期)2018-01-03 20:59:57
TPP反腐敗規則對我國的啟示
《生長在春天》
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
主站蜘蛛池模板: 色窝窝免费一区二区三区| 国产日韩丝袜一二三区| 免费xxxxx在线观看网站| 亚洲欧美在线综合一区二区三区| 国产精品成| 毛片久久网站小视频| 免费一极毛片| 久青草免费在线视频| 中文字幕在线播放不卡| 女同国产精品一区二区| 福利视频99| 无码人中文字幕| 亚洲人成影视在线观看| 欧美亚洲香蕉| 五月婷婷导航| 美女被操黄色视频网站| 色婷婷视频在线| 亚洲第一成年网| 久久国产乱子| 国产激情国语对白普通话| 国产在线一二三区| 无码一区二区波多野结衣播放搜索| 国产精品成人AⅤ在线一二三四| 婷婷六月综合| 亚洲精品视频免费| 99福利视频导航| 日本亚洲欧美在线| 国产福利一区视频| 婷婷午夜天| 亚洲国产清纯| 三上悠亚一区二区| 精品三级网站| 欧美一区二区三区国产精品| a欧美在线| 国产噜噜噜| 亚洲日韩精品无码专区97| 亚洲无码精品在线播放| a免费毛片在线播放| www.91中文字幕| 午夜电影在线观看国产1区| 欧美在线国产| 中国精品自拍| 亚洲精品老司机| 亚洲天堂区| 五月婷婷导航| 伊人激情综合网| 女人18毛片水真多国产| 亚洲三级视频在线观看| 免费人成视网站在线不卡| 国产精品三区四区| 中文字幕自拍偷拍| 成年人福利视频| 国产在线高清一级毛片| 人与鲁专区| 国产精品三级专区| 欧美亚洲国产一区| 91视频首页| 伊在人亞洲香蕉精品區| 国产综合日韩另类一区二区| 亚洲欧美成人综合| 精品少妇人妻一区二区| 亚洲国产清纯| 97超爽成人免费视频在线播放| 少妇极品熟妇人妻专区视频| 久久久国产精品无码专区| 婷婷六月综合网| 孕妇高潮太爽了在线观看免费| 日韩免费无码人妻系列| 激情成人综合网| 久久久久青草大香线综合精品| 欧美在线综合视频| 91久久国产综合精品| 亚洲午夜福利在线| 午夜精品久久久久久久无码软件 | 国产成人福利在线| 四虎永久在线| 国产一级视频久久| 国产成人综合久久精品尤物| 91国内在线视频| 国产丰满成熟女性性满足视频| 亚洲中文字幕97久久精品少妇| 一级毛片免费播放视频|