上一期文章介紹了如何在簡(jiǎn)單的畫(huà)圖軟件中產(chǎn)生自相似點(diǎn)陣圖,這一期則模擬矢量圖的繪圖模式,以遞歸的方法在畫(huà)圖中描繪自相似的漫步。
首先,在畫(huà)圖中用鉛筆工具畫(huà)出一個(gè)有直角轉(zhuǎn)折的小圖案,如,借助“查看—縮放—大尺寸”工具,使圖案中每條線段的長(zhǎng)度量化為一個(gè)整數(shù),為簡(jiǎn)單起見(jiàn),在這個(gè)例子中,每條線段的長(zhǎng)度設(shè)為一致。然后就可以將該圖案以指令形式,編碼為“前進(jìn)、左轉(zhuǎn)、前進(jìn)、右轉(zhuǎn)、前進(jìn)、右轉(zhuǎn)、前進(jìn)、左轉(zhuǎn)、前進(jìn)”(→是初始的前進(jìn)方向),由于本例圖案線段長(zhǎng)度相同,所以該編碼也可簡(jiǎn)化為“左轉(zhuǎn)、右轉(zhuǎn)、右轉(zhuǎn)、左轉(zhuǎn)”。以此編碼為基因,將轉(zhuǎn)彎規(guī)則應(yīng)用于圖案本身,形成圖1。
在畫(huà)圖軟件中,使圖案左轉(zhuǎn)的方法是選擇菜單圖像“旋轉(zhuǎn)—按一定角度旋轉(zhuǎn)270度”,右轉(zhuǎn)則是旋轉(zhuǎn)90度。下面展示了接下來(lái)的兩步演化:
第一步:,第二步:。
實(shí)際上,該圖案有一個(gè)很學(xué)術(shù)的稱謂,叫作科赫曲線方紋一型(Koch Curve—Quadratic type 1 curve)。大家若有耐心的話,也可以在畫(huà)圖中嘗試一下科赫曲線方紋二型(Koch Curve—Quadratic type 2 curve)的演化過(guò)程,其初始形態(tài)是,其自我演化僅僅兩步后,圖案就已經(jīng)非常復(fù)雜,仿佛海岸線或云朵的邊緣(如圖2)。
除該圖案外,還有很多好玩的自相似漫步圖型等待大家去發(fā)現(xiàn)。例如, 圖案最后會(huì)演化成什么樣子?不親手畫(huà)一下是很難想像得出結(jié)果是怎么樣的。文中所介紹的,都是步長(zhǎng)(線段長(zhǎng)度)一致的圖案,若步長(zhǎng)不同,則圖像會(huì)變得更加復(fù)雜。
不過(guò),由于畫(huà)圖軟件功能有限,假如圖案旋轉(zhuǎn)的角度不是90的倍數(shù),操作起來(lái)就相當(dāng)麻煩。有興趣的話,可以使用專門的工具來(lái)繪制自相似圖形,這里介紹可免費(fèi)下載使用的Fractacal-Grower,該軟件采用L系統(tǒng)(L-System)繪制自相似圖形,雖然沒(méi)有更多篇幅來(lái)詳細(xì)介紹L系統(tǒng),但其基本原理與利用畫(huà)圖軟件產(chǎn)生自相似漫步圖形的方法是類似的。(答案在本期找)