劉肖健,呂蕓蕓,趙贏男,黃鑫宇
(浙江工業(yè)大學(xué),杭州 310023)
在服裝面料、室內(nèi)裝飾板、背景底紋等平面設(shè)計中,經(jīng)常需要基于圖形單元對一個無限的平面進(jìn)行無交疊填充,即圖形單元平鋪布置,相互之間不存在交疊。四方連續(xù)圖案是完成此類任務(wù)最常用的手段,對圖案中的圖形單元有分布均勻、疏密平衡等美學(xué)要求,同時還要避免簡單復(fù)制帶來的僵硬感和機(jī)械感。由于選定的圖形單元其本身的形狀并不規(guī)則,且多個圖形單元的組合方式靈活多變,所以畫面布置與調(diào)整將比較耗時。筆者利用任意四邊形無縫鑲嵌的原理來解決上述設(shè)計問題,開發(fā)了智能化的設(shè)計工具,以提高設(shè)計師的工作效率。
四方連續(xù)是一種常見的平面圖案類型[1],屬于對稱圖形的一種。Washburn 等[2]基于對各國傳統(tǒng)紋樣的研究,梳理了多達(dá)幾十種不同的對稱規(guī)則,其中絕大多數(shù)可用于四方連續(xù)圖案的構(gòu)造。四方連續(xù)圖案的自動生成技術(shù)在計算機(jī)圖形領(lǐng)域已有較長的研究歷史,如李寶德等[3]早在1992 年就創(chuàng)造了面料四方連續(xù)圖案的自動生成算法,實(shí)現(xiàn)了圖塊的復(fù)制及跨邊界單元的處理;金蘭名等[4]提出了連續(xù)式、比例式、分段式、整體式等四方連續(xù)圖案的設(shè)計手段,可以快速完成符合工藝要求的織物圖案設(shè)計;劉艷等[5]給出了重疊式四方連續(xù)的構(gòu)造規(guī)律,并對織機(jī)效果進(jìn)行了數(shù)字模擬;劉肖健等[6]基于二進(jìn)制的編碼方式,實(shí)現(xiàn)了中國古代墻洞填充四方連續(xù)圖案的自動設(shè)計。
鑲嵌圖案指由一種或有限的幾種圖形單元通過無縫拼合得到的圖案。各國傳統(tǒng)紋樣中均存在鑲嵌圖案。荷蘭藝術(shù)家Escher 在鑲嵌圖案方面的創(chuàng)意和探索,引起了科學(xué)界和藝術(shù)界的興趣,并引發(fā)了大量研究[7]。Naimia 等[8]對Escher 的連續(xù)鑲嵌網(wǎng)格構(gòu)造原理給出了數(shù)學(xué)證明;Fratta 等[9]改進(jìn)了任意方向的3D 單元鑲嵌方法,對Escher 的藝術(shù)設(shè)計思想給出了數(shù)學(xué)解釋;Liu 等[10]利用Escher 風(fēng)格的無縫圖案鑲嵌技術(shù),解決了切割材料的排版和節(jié)約問題;Lin 等[11]開發(fā)了一個軟件系統(tǒng),主要用于生成漸變類型的Escher 鑲嵌風(fēng)格;Zhou 等[12]基于曲線自動構(gòu)建裝飾圖案的方法,為非專業(yè)用戶提供了一個可以繪制復(fù)雜裝飾圖案的工具;Adanova 等[13]對鑲嵌式圖案的設(shè)計方法進(jìn)行了探索,給出了基于單元分組的創(chuàng)新方法;Hu 等[14]采用連續(xù)優(yōu)化和組合優(yōu)化相結(jié)合的方法,開發(fā)了利用不規(guī)則瓷磚進(jìn)行無縫鑲嵌的技術(shù)。鑲嵌圖形也被大量用于藝術(shù)創(chuàng)作之外的領(lǐng)域,如Mizzi 等[15]利用鑲嵌圖案原理來設(shè)計材料的微結(jié)構(gòu),實(shí)現(xiàn)對材料性能與形態(tài)的精確控制;Schumacher 等[16]根據(jù)美學(xué)性能和功能性需求來設(shè)計鏤空建筑材料的四方連續(xù)圖案。
任意四邊形的可鑲嵌性可以用于解決藝術(shù)設(shè)計、材料設(shè)計、制造工藝規(guī)程等領(lǐng)域的問題。筆者根據(jù)平面藝術(shù)設(shè)計中的填充式四方連續(xù)圖案,把鑲嵌單元從傳統(tǒng)的直邊四邊形拓展到曲邊四邊形,在可鑲嵌性的前提下,開發(fā)了可供設(shè)計師自由發(fā)揮的創(chuàng)意工具。同時把鑲嵌單元用作其他圖形元素的“外殼”,通過豐富的形態(tài)變化來滿足不規(guī)則圖形元素均衡分布的需要。
基于初等幾何學(xué)可以證明,任意四邊形單元均可無縫鑲嵌[17],見圖1。
圖1 四邊形的無縫鑲嵌Fig.1 Seamless tessellation of quadrilaterals
基于四邊形鑲嵌的四方連續(xù),需要利用4 個相同的四邊形單元,通過旋轉(zhuǎn)、移位來構(gòu)造出一個復(fù)合單元,然后利用復(fù)合單元進(jìn)行常規(guī)的陣列操作。在四邊形內(nèi)填入圖形元素,令其符合一定的美學(xué)原則,完成鑲嵌后再隱藏邊框,即可得到所需的四方連續(xù)圖案,見圖2。另外,也可以事先進(jìn)行內(nèi)部圖形元素的布置,然后構(gòu)造出一個四邊形進(jìn)行緊密圍繞,并彼此調(diào)整到位。非凸四邊形(即四邊形包含大于180°的內(nèi)角)也可以無縫鑲嵌,圖2a 即使用了一個非凸四邊形單元。
圖2 四邊形鑲嵌得到的四方連續(xù)圖案Fig.2 Square continuous patterns generated by tessellation
圖1b 的復(fù)合單元由四邊形各邊進(jìn)行反向貼合得到,因此四邊形的邊不一定是直線,只要是相對直邊中點(diǎn)對稱的曲線(如正弦曲線)均可進(jìn)行無縫鑲嵌,見圖3。
圖3 曲邊四邊形單元的鑲嵌Fig.3 Tessellation of curve-edge quadrilaterals
利用曲邊四邊形來調(diào)整圖案的緊湊度,見圖4。對稱曲邊四邊形的可鑲嵌性給圖形元素的布置提供了極大的靈活性。例如,可以將圖2a 單元四邊形的邊調(diào)整為曲邊,從而使四方連續(xù)圖案變得更加緊湊,見圖4a。
比較圖4b 與圖2c,可以看出,圖4b 的空間布置更加緊湊,留白更均勻。曲邊四邊形的無縫鑲嵌也可以用于切割加工的排版設(shè)計,在四邊形基礎(chǔ)上,進(jìn)一步設(shè)計出符合可鑲嵌條件的自由形狀來包裹待切割單元,從而最大限度地利用材料。
圖4 利用曲邊四邊形調(diào)整圖案緊湊度Fig.4 Regulation of pattern tightness with curve-edge quadrilaterals
為實(shí)現(xiàn)上述四方連續(xù)圖案的智能化設(shè)計,基于平面設(shè)計師常用的矢量設(shè)計軟件CorelDraw 來進(jìn)行技術(shù)開發(fā)。CorelDraw 具有豐富的圖形設(shè)計功能,圖形元素的設(shè)計和布局及四邊形繪制等單元設(shè)計工作可以由設(shè)計師手工完成,四方連續(xù)圖案可以通過四邊形的智能化識別和鑲嵌等自動化方式完成。智能設(shè)計技術(shù)充分融合設(shè)計師的設(shè)計思想,通過人機(jī)協(xié)作的方式進(jìn)行工作。四方連續(xù)設(shè)計的技術(shù)流程與界面見圖5。
圖5 四方連續(xù)設(shè)計的技術(shù)流程與界面Fig.5 Technical process of the pattern design and the user interface
設(shè)計師的工作集中在前期,主要內(nèi)容是手工構(gòu)建基本圖案單元(如圖2a、圖4a),具體包括單元內(nèi)部圖形元素的布置和包圍四邊形的繪制,程序提供輔助工具,從而確保設(shè)計師繪制的曲邊四邊形具有可鑲嵌性。復(fù)制陣列等工作交由程序處理。平臺軟件CorelDraw 提供了方便的圖形處理函數(shù),使開發(fā)工作可以控制在2 周之內(nèi),且設(shè)計師可以勝任開發(fā)工作,不需要職業(yè)程序員的介入。由于最體現(xiàn)創(chuàng)意價值的關(guān)鍵性工作均由設(shè)計師完成,且程序設(shè)置了對設(shè)計師創(chuàng)建的圖形進(jìn)行智能識別的算法,所以需要用戶填寫的參數(shù)很少,可用性良好。
四方連續(xù)設(shè)計界面分為4 個部分:基于四邊形單元生成鑲嵌圖案,選定單元圖形后,點(diǎn)擊上方最大的按鈕即可生成四方連續(xù)圖案;生成正弦曲邊四邊形,在直邊四邊形基礎(chǔ)上給出4 條邊的波動幅度參數(shù),把直邊四邊形轉(zhuǎn)化為正弦曲邊四邊形;生成自由曲邊四邊形,在直邊四邊形的基礎(chǔ)上,利用用戶手繪的自由曲線生成可鑲嵌的自由曲邊四邊形;基于復(fù)合單元生成鑲嵌圖案,在四邊形單元基礎(chǔ)上構(gòu)建復(fù)合單元。
不是所有的曲邊四邊形都可以無縫鑲嵌。可鑲嵌的曲邊四邊形需要滿足一個條件,即各曲邊均為直邊中點(diǎn)的中心對稱曲線。以下使用2 種方法構(gòu)建曲邊:第1 種是基于一條直邊來構(gòu)造一條正弦曲線形狀的曲邊,并設(shè)定一個參數(shù)讓用戶輸入,從而控制各邊正弦曲線的起伏高度和起伏方向;第2 種是由用戶手工構(gòu)造任意形狀的自由曲邊。
第1 種正弦曲邊可以滿足一般性的四方連續(xù)圖案的設(shè)計,主要用于單元內(nèi)部的圖形元素填充。筆者基于直邊構(gòu)建正弦曲邊,采用節(jié)點(diǎn)偏移的方法,即在直邊上均勻取點(diǎn),然后使其向直邊法線方向偏移,偏移量的大小用正弦函數(shù)計算,最大偏移量(即正弦波的峰值高度)根據(jù)用戶輸入的參數(shù)值來確定。基于幾種不同偏移量參數(shù)生成的曲邊見圖6。
圖6 正弦曲邊的生成Fig.6 Generation of Sine curve edge
用戶可以在圖5b 界面上部的4 個輸入框中,輸入4 條邊的正弦曲線波幅參數(shù)。如果參數(shù)值為0,則該邊保持為直線;如果為負(fù)值,則正弦波起伏方向相反。用戶也可以通過界面中的“正弦線”按鈕將一條直線快速變?yōu)檎仪€(波幅取自界面上的第1 個參數(shù)),然后經(jīng)過手動壓縮變形(并不改變其對稱性)處理后參與組建曲邊四邊形。有時正弦波形狀的曲邊四邊形不能滿足用戶的需求,因此需要構(gòu)建自由形狀的曲邊。對此,程序提供了輔助工具,從而確保用戶可以構(gòu)建出滿足可鑲嵌條件的曲邊四邊形。
用該輔助工具構(gòu)建一個自由曲邊四邊形的過程如下:選擇一個直邊四邊形(程序會檢測所選的圖形是否正確);選擇一條開環(huán)曲線,該曲線將被用作曲邊四邊形的半條曲邊;將開環(huán)曲線復(fù)制、縮放并旋轉(zhuǎn)180°后,與原曲線融合成一條對稱曲線,形成一條可鑲嵌的曲邊;用鼠標(biāo)在直邊四邊形需要替換的邊的附近進(jìn)行點(diǎn)擊,程序會搜索附近的直邊,并將曲邊移動到位,使其兩端點(diǎn)與直邊兩端點(diǎn)重合;選擇生成的四條曲邊(或直邊),將其組合成一個曲邊四邊形。界面上的“反向”復(fù)選框用于確定曲邊替換直邊時,是否需要基于直邊進(jìn)行兩側(cè)翻轉(zhuǎn)。自由曲邊四邊形的生成見圖7。
圖7 自由曲邊四邊形的生成Fig.7 Generating free curve-edge quadrilateral
首先,程序需要識別一個圖形是否為可鑲嵌的四邊形,如不是,則給出提示。該過程分為以下2 個部分。
第 1 步,識別待鑲嵌的圖形是否為四邊形。CorelDraw 的圖形以Bezier 曲線的形式表達(dá),曲線在有尖角之處的節(jié)點(diǎn)左右兩側(cè)的切矢方向不同。程序以此作為四邊形識別的依據(jù):如果有尖角的節(jié)點(diǎn)數(shù)為4,則是四邊形,否則不是。由于光滑曲線具有連續(xù)性特征,所有節(jié)點(diǎn)兩側(cè)的切矢方向均相同,所以該法可以同時用于檢測直邊四邊形和曲邊四邊形?;谏鲜鲆?guī)則,三角形也可以用相同的技術(shù)來鑲嵌,只要把2 個鄰邊做成一條直線即可。然而,由于檢測規(guī)則的約束,2 條鄰邊的夾角不能是精確的180°,而應(yīng)與180°保持1°以上的差值以確保圖形被識別為四邊形而非三角形,這個差值對四方連續(xù)圖案的制作效果基本無影響。
第2 步,識別四邊形是否可以鑲嵌,直邊四邊形均可鑲嵌,曲邊四邊形則需要滿足邊對稱條件才能鑲嵌。程序?qū)⑺倪呅我暈榍吽倪呅危⒃谙噜弮杉饨枪?jié)點(diǎn)之間的曲線段上均勻取參數(shù)點(diǎn),然后計算參數(shù)點(diǎn)到直邊的距離(在直邊一側(cè)為正距離,另一側(cè)為負(fù)距離),如果兩側(cè)對稱位置的距離相等,則為可鑲嵌四邊形,見圖8。
圖8 識別四邊形的可鑲嵌性Fig.8 Judgment of quadrilateral's tessellability
本部分工作通過用戶界面中的“復(fù)合單元構(gòu)建”按鈕完成。復(fù)合單元是指四邊形(及其內(nèi)部圖形元素)通過復(fù)制、旋轉(zhuǎn)、平移構(gòu)成的復(fù)合無縫鑲嵌單元,見圖9。復(fù)合單元可以通過簡單陣列形成四方連續(xù),見圖9a。
圖9a 中:1 號單元為原始單元;2 號單元通過1號單元平移得到,平移向量為CA;3 號單元通過1號單元旋轉(zhuǎn)180°,然后將旋轉(zhuǎn)后的A 點(diǎn)與原B 點(diǎn)對齊得到;4 號單元通過1 號單元旋轉(zhuǎn)180°,然后將旋轉(zhuǎn)后的A 點(diǎn)與原D 點(diǎn)對齊得到。4 個四邊形群組后得到一個復(fù)合單元,復(fù)合單元通過簡單陣列即可得到四方連續(xù)圖案。
圖9 復(fù)合單元Fig.9 Composite unit
本部分工作通過用戶界面中的“復(fù)合單元陣列”按鈕完成。對復(fù)合單元進(jìn)行陣列的主要工作是確定2個方向(通常不是正交的)的復(fù)制向量,包括它的方向和長度2 個要素。復(fù)制向量通過對復(fù)合單元外輪廓上的角點(diǎn)進(jìn)行計算得到??梢匀D9a 復(fù)合單元外輪廓8 個節(jié)點(diǎn)中的2 個相對節(jié)點(diǎn)構(gòu)建第1 個復(fù)制向量,如1、5 兩點(diǎn)。另一復(fù)制向量由第1 個復(fù)制向量的2個節(jié)點(diǎn)號加2 得到,如1、5 節(jié)點(diǎn)對應(yīng)的是3、7 節(jié)點(diǎn)。為了讓2 個復(fù)制向量的方向盡量貼近兩軸,在選擇第1 對復(fù)制向量時會檢測2 個節(jié)點(diǎn)連線與X軸方向的夾角,并取最小者確定復(fù)制向量。這樣做是為了使生成的四方連續(xù)陣列盡量保持為一個矩形狀態(tài),以便最后使用一個矩形框來進(jìn)行截取。將圖9a 的復(fù)合單元原地復(fù)制后沿1、5 節(jié)點(diǎn)構(gòu)成的向量連續(xù)平移可以得到一行單元,每行單元沿3、7 節(jié)點(diǎn)構(gòu)成的向量進(jìn)行連續(xù)復(fù)制可以得到多行單元,從而形成四方連續(xù)。
在選取第1 對復(fù)制向量時有可能遇到另一種情況,即2 個相對節(jié)點(diǎn)不是“腰點(diǎn)”(同時連接2 個四邊形單元的節(jié)點(diǎn),如1、3、5、7 節(jié)點(diǎn)),而是“角點(diǎn)”(只存在于1 個四邊形單元中,如2、4、6、8 節(jié)點(diǎn))。這種情況下,按照上述方案復(fù)制陣列會導(dǎo)致四方連續(xù)出現(xiàn)“中空”,即相鄰單元以節(jié)點(diǎn)相連而非以邊相連,類似菱形的常規(guī)二維陣列,因此需要在中空部位填補(bǔ)單元??梢岳贸绦騺砼袛嗟? 對復(fù)制向量的2 個節(jié)點(diǎn)是否為腰點(diǎn),不過為了簡化代碼,把這個工作留給了設(shè)計師,在界面上設(shè)置了一個“菱形”選項(xiàng),用于處理復(fù)合單元菱形錯行陣列的情況?!傲庑巍边x項(xiàng)默認(rèn)處于未選中狀態(tài),如果設(shè)計師發(fā)現(xiàn)復(fù)制向量屬于第2 種情況,則將其選中,程序會自動在中空部位補(bǔ)充復(fù)制單元。
上述復(fù)合單元是由相同的原始單元組合而成,區(qū)別只有位置和角度不同。在復(fù)合單元的基礎(chǔ)上可以發(fā)展出異質(zhì)復(fù)合單元,即由不同的單元構(gòu)成的復(fù)合單元。由于復(fù)合單元的可鑲嵌性取決于其輪廓,所以可以通過打破內(nèi)部邊界的方式重新劃分出不同的新單元形態(tài),形成多種異質(zhì)單元組合的鑲嵌圖案。如改變圖9a 復(fù)合單元的4 條內(nèi)部邊界的形態(tài),可以得到由4 個不同形狀的四邊形組合成的新復(fù)合單元,如圖9b、圖9c;或者取消復(fù)合單元的4 條內(nèi)部邊界,并連接3、7 兩個節(jié)點(diǎn)形成新的內(nèi)部邊界,得到由2 個不同的五邊形組合成的新復(fù)合單元。由于復(fù)合單元的內(nèi)部邊界可以任意劃分,圖案效果極具多樣性,這也是Escher 鑲嵌圖形設(shè)計的重要原理之一。
圖5b 用戶界面的下端除了復(fù)合單元的構(gòu)建和陣列外,還給出了一個正弦曲線的快速生成按鈕,可以在2 點(diǎn)之間迅速創(chuàng)建一個周期的正弦曲線,圖9b 中復(fù)合單元內(nèi)部的重新分割就是利用2 條正弦曲線完成的。異質(zhì)復(fù)合單元的鑲嵌方式與同質(zhì)復(fù)合單元的鑲嵌方式相同。
技術(shù)應(yīng)用以紡織紋樣中的一種常見四方連續(xù)形式為例進(jìn)行設(shè)計。該四方連續(xù)由四色單元構(gòu)成,4 種顏色的單元形態(tài)完全相同,只有方位不同,它們鋪滿整個空間,不留空隙。單元形態(tài)要求為具有一定復(fù)雜度的自由曲線形態(tài),以避免單調(diào)。自由曲邊四邊形四方連續(xù)案例見圖10。圖10a 為基于圖7 的自由曲邊生成的自由曲邊四邊形,背后的細(xì)線是原始的直邊四邊形。圖10b 為復(fù)合鑲嵌單元。圖10c 為基于復(fù)合單元生成的四方連續(xù)圖案。
圖10 自由曲邊四邊形四方連續(xù)案例Fig.10 Example of free curve-edge quadrilateral tessellation
可以看到,文中的方法可以簡單、快捷地實(shí)現(xiàn)基于復(fù)雜單元圖形的四方連續(xù)圖案設(shè)計,圖案單元嵌合精確、細(xì)節(jié)豐富,并且在單元設(shè)計環(huán)節(jié)給設(shè)計師留出了充分的創(chuàng)意發(fā)揮空間。所開發(fā)的工具軟件,可以讓智能技術(shù)和設(shè)計師共同協(xié)作并高效完成四方連續(xù)的創(chuàng)意設(shè)計工作。
文中的技術(shù)在智能化方面還有進(jìn)一步提升的空間,主要如下:基于智能化手段的自由曲邊的形態(tài)設(shè)計,特別是帶有某些具象特征的曲線形態(tài),如傳統(tǒng)紋樣圖形元素面向可鑲嵌的圖形單元的定制設(shè)計,可以讓傳統(tǒng)紋樣的應(yīng)用不再是簡單的陣列,而是帶有一些理性的幾何邏輯,對傳統(tǒng)文化的創(chuàng)新也有促進(jìn)作用;基于優(yōu)化算法的曲邊交疊性校驗(yàn)與修正,設(shè)計自由曲邊四邊形時,曲邊之間有可能產(chǎn)生交疊,影響單元的可鑲嵌性,因此可將曲線定義為參數(shù)化曲線,使用交互式遺傳算法等智能優(yōu)化工具來搜尋無交疊的最優(yōu)解;對設(shè)計師手繪圖案的智能識別機(jī)制,基于智能化技術(shù)對設(shè)計師手工制作的圖形的不規(guī)范之處逐一進(jìn)行鑒別并處理,以減少設(shè)計師在瑣碎事務(wù)上耗費(fèi)的精力。
基于四邊形鑲嵌的四方連續(xù)圖案生成方法在原理上早已成熟。盡管如此,手工繪制鑲嵌單元圖形仍是一項(xiàng)復(fù)雜的工作。文中所開發(fā)的技術(shù)主要貢獻(xiàn)有如下幾點(diǎn):基于通用平面設(shè)計軟件平臺開發(fā)了專用工具,并實(shí)現(xiàn)了智能鑲嵌設(shè)計;利用四邊形鑲嵌作為空間填充布置的工具,實(shí)現(xiàn)了豐富、復(fù)雜的連續(xù)圖案設(shè)計效果,為面向空間充分利用的排版設(shè)計提供了一種通過設(shè)計師輸入?yún)?shù)進(jìn)行驅(qū)動設(shè)計的方便工具;通過程序保證曲邊四邊形的可鑲嵌性條件,讓設(shè)計師可以利用手繪的自由曲線來迅速生成無縫鑲嵌圖案單元;通過復(fù)合單元的重構(gòu),可以生成異質(zhì)單元的無縫鑲嵌圖案;基于選定的圖形單元,可以構(gòu)造出可鑲嵌四邊形或復(fù)合單元。
事實(shí)上,理論界和技術(shù)界的很多研究僅止步于算法,應(yīng)用層面的創(chuàng)新探索還遠(yuǎn)遠(yuǎn)不足,在服務(wù)生產(chǎn)方面也有大量的開發(fā)工作有待落實(shí),這中間的斷層是設(shè)計類研究創(chuàng)造價值的聚集地,也是通過大量實(shí)踐和迭代發(fā)現(xiàn)新的科學(xué)問題的契機(jī)。