数字建筑设计
Digital Architectural Design
传统冰裂纹的数字生成
吉国华
南京大学建筑与城市规划学院,南京,210093
jgh@nju.edu.cn
摘要:在我国传统木装饰中,冰裂纹形状千变万化,充满神秘感,而传统做法依赖于工匠的审美和手艺。近来有建筑师及其他设计师试图将冰裂纹图案应用于其他设计对象,但如何得到适合的冰裂纹图案的问题,仍然有待解决。本研究从“裂纹”的概念出发,通过计算生成冰裂纹网格,并在Grasshopper平台上采用VB脚本运算器编程实现,基本解决了这一问题。主要算法步骤包括裂缝轨迹的预设、裂缝的阻断、裂缝的延长修正,以及“坏形”的判断与处理。本文介绍了具体算法步骤以及运行结果。
关键词:冰裂纹;算法;图案;生成
1.简介
冰裂纹是我国传统木装饰中的一种图案,常用于门窗、隔断、围栏,以及椅背、橱门、搁板等处。在古式装饰中,冰裂纹属于难度较高的一种,依赖于工匠的审美和手艺。冰裂纹图案形状千变万化,充满了神秘感。近年来,有建筑师及其他设计师试图将冰裂纹图案应用于其他设计对象,但如何得到适合的冰裂纹图案,仍然是有待解决的问题。
20世纪70年代,美国的George Stiny探讨了采用形状语法(shape grammar)来生成中国古典窗格图案,其中也涉及了冰裂纹窗格的生成(见图1) [1], [2]。该研究采用几条简单的规则,即可生成一系列造型优美的冰裂纹图案,但其采用的规则基于多边形的逐步细分,因而其结果具有明显的层次等级,与我国传统冰裂纹图案互相咬合、不分层级的特点还有较大差距。
图1 采用形状语法生成的冰裂纹(图片来源:Shape:Talking about Seeing and Doing, P.335,339)
Stiny之后,美国MIT的Liew Haldane继续了以形状语法生成冰裂纹的研究,归纳了几种冰裂纹形状语法并以AutoLisp语言加以实现。其中,无层级互相咬合的随机性冰裂纹图案被列为第四种“未知的语法” [3],以形状语法生成冰裂纹遇到了瓶颈。
近年来出现了大量的互承结构(reciprocal structure)的研究与教学成果,由于互承结构图案与冰裂纹图案有诸多相似之处,某些研究(如文献[4])探讨的互承结构形式生成方法似可借鉴于冰裂纹图案的生成。
总的说来,有关生成冰裂纹的算法方面的研究尚没有取得实质性的进展。本研究从“裂纹”的概念出发,采用计算方法,实现了冰裂纹图案的生成。
2.“T”形交接图案的生成
通过观察可以发现,冰裂纹图案是由一组“T”形交接的线条组成的,根据“裂纹”这一名称,作者提出了生成思路:假设冰裂纹中的每根线条为一根裂缝,每根裂缝均是由某点开始开裂并逐渐沿着直线或曲线延长,当有其他裂缝阻挡了其延长方向时,则此裂缝即终止其延长过程,这样就形成了“T”形交接的一组裂纹。基本算法主要包括以下三个步骤:
(1)裂缝轨迹的预设。即设置各条裂缝的起点以及在不受阻状态下发展的直线或曲线轨迹,可以一组随机线为裂缝轨迹,以线上某位置的点(如中点)作为裂缝起点(见图2(a))。对于图案的内外边界和分界线等,则设置为已有裂缝来。
图2 算法过程
(2)裂缝的阻断。根据假设,当某条裂缝的延长被其他裂缝阻挡时,此裂缝将终止延长。计算方法是首先求出此裂缝轨迹与其他的裂缝轨迹以及已有裂缝的交点,如果和已有裂缝相交则记录交点;如果和其他裂缝轨迹相交,则对此裂缝轨迹从起点到交点的长度和与其相交的裂缝轨迹从起点到交点的长度进行比较,如果前者较长,则记录交点,否则不记录。这里假设各裂缝是同时由各起点匀速延长的,因此起点到交点长度较短的裂缝会先期延长到交点,并阻断了起点到交点长度较长的裂缝的继续延长。对于异时和非均匀发展的裂缝,可以采用时间计算,但鉴于本文的研究目的,作者采用计算长度的简化算法。
计算出并根据以上规则记录某条裂缝轨迹与已有裂缝以及其他裂缝轨迹的交点后,截取起点两端与起点最近的两个点之间的裂缝轨迹,就初步形成了“T”形交接的图案,如图2(b)所示。
(3)裂缝的延长修正。在图2(b)中可以发现,有一些裂缝的端点并没有处于其他裂缝之上,这是因为在上述的计算过程中,有些会阻断这些裂缝延长的其他裂缝由于已经被其他裂缝先行阻断而没有延长到交点,因而后者的阻断作用并没有实际发生。准确的修正方法是把起点、终点已处于其他裂缝之上的裂缝(即已完成裂缝)作为已有裂缝,重新进行步骤(2),如此循环,直至所有裂缝形成“T”字形相交。
多数情况下,端点尚未处于其他裂缝之上的裂缝由于其他裂缝的阻断不会实际相交,因此作者采用简单方法,即将这些裂缝直接延长到最近一条裂缝。计算方法是把所有裂缝当作已有裂缝,顺序求出上述裂缝轨迹与重新设定的已有裂缝的交点,并截取形成裂缝,再加入到已有裂缝中,供下一条裂缝的求取,最终完成所有的“T”字形相交。此步骤结果如图2(c)所示。
3.形状控制
在初始的裂缝轨迹预设过程中,比较方便的方法是采用一些具有随机性的线条,因而在上述过程的计算结果中,难免会出现一些面积较小、形态狭长的多边形形状,这不符合冰裂纹图案面积均匀、形态相似的美观要求。不理想的形状主要由于相邻裂缝之间夹角较小导致,解决方法一则可以重新调整预设裂纹加以避免,或通过程序自动调整,后者首先需要能够识别不理想形状。
通过计算图案中的每一个多边形各边之间的夹角可以很容易地捡取不理想形状,但是需要首先从由线条构成的图案中抽取出所有多边形,这需要相当繁复的算法才能实现。本文采取了比较容易实现的算法,只要通过对图案中的线条两两之间的关系进行判断即可。方法如下:
(1)分别求出两条裂缝起点到终点的向量,计算两向量的夹角,如果大于90°则翻转其中一条向量。将上述两向量的单位向量相加,即得两向量的角平分线向量。
(2)从两条裂缝的起点和终点作与角平分线向量垂直的平面,并求该平面与另一条裂缝的交点,计算起点、终点与交点的距离。
如果其中一条裂缝的起点与终点处的平面与另一条裂缝均相交,则两裂缝关系如图3(a)或图3(b)所示,记录此两交点;如果每条裂缝起点与终点处的平面只有一个与另一条裂缝相交,则两裂缝关系如图3(c)、图3(d)或图3(e)所示,记录图3所示关系的两交点;如果总的交点数小于1,则两裂缝关系如图3(f)所示,它们之间没有关系。
图3 基于与平分线向量垂直的平面来判断裂缝之间的关系
(3)在图3(a)、图3(b)和图3(c)所示的情况下,两裂缝将极有可能出现在冰裂纹图案的同一多边形中,即有可能导致不理想形态的出现。判断方法如下:首先计算两交点的距离,作为判断是否面积过小的指标d;再将两交点之间连线平分成若干段,在各平分点作与角平分线向量垂直的平面,求各平面与两裂缝的交点的距离,并求平均值;最后求平均值与两交点距离的比值,作为判断形状是否狭长的指标r。
本程序设置了控制面积过小和形状狭长的用户输入参数,当计算值小于用户输入的参数值时,将删除较短裂缝的轨迹,再重新计算裂缝,直至所有裂缝间的关系满足要求。图2所示的图案经过这个过程,就得到了图4所示的结果。其中图4(a)和图4(b)中,d设为0, r分别为0.2和0.4;图4(c)中,在r = 0.4的基础上给d设置了某个控制值。
图4 形状控制结果
4.冰裂纹的实现
上述算法过程在Grasshopper平台上采用VB脚本运算器编程实现,可以在各种给定的裂纹轨迹和起点的情况下,生成“T”形交接的图案,如图5所示。
图5 基于随机裂纹轨迹的冰裂纹图案
但研究发现,通过上述方法,在一组随机的线条中获得我国传统木装饰中的那种优美的冰裂纹几乎是不可能的,由于结果的随机性过高,即便采用遗传算法等优化算法也难以成功。而实际上,我国传统的冰裂纹图案是在一定的规则网格基础上通过一些随机性而获得的,《古建筑装折》 [5]一书对此有少量的介绍。
图6(a)所示为一种常用的规则冰裂纹网格,采用本文开发的程序,通过将此网格上的线条进行一定的随机转动和位移后延长作为裂纹轨迹、将各线条的中点作为裂缝起点,再采用上述算法即可成功地生成传统式样的冰裂纹,如图6(b)所示。
图6 基于规则网格的冰裂纹图案
实际上,上述程序的实质是“T”形图案的生成,利用它可以通过规则排列的多边形产生规则冰裂纹网格;之后,再通过增加随机性,之后再一次采用本程序,可进一步生成富于变化的冰裂纹。这样就形成了由规则多边形生成规则冰裂纹网格再生成随机冰裂纹的两步骤生成过程,如图7、图8所示。
图7 由正方形阵列两步骤生成随机冰裂纹
图8 由正五边形阵列两步骤生成随机冰裂纹
5.结语
本文介绍了线条之间“T”形相交图案的算法,有效地解决了冰裂纹图案的生成问题。算法基于裂纹的发生和发展原理,简单易懂,容易实现,可在平面和曲面上生成由直线和曲线构成的冰裂纹,采用两步骤方法,可以由多边形阵列生成随机冰裂纹。
在计算机上实现冰裂纹的意义不仅在于可以不依赖于传统工匠而获得更多式样的冰裂纹,其意义还在于可以进一步利用数字加工设备进行生产,可以彻底摆脱由于传统工艺的失传而导致的诸多问题。另外,综合应用其他数字技巧,还可进一步拓宽冰裂纹的应用。图9所示是通过裂纹轨迹和裂纹终点进行几何转换而在曲面上形成冰裂纹图样的例子,以及在立方体表面上生成六面连续冰裂纹的尝试。
图9 沿球面与立方体表面的连续冰裂纹
由于生成冰裂纹图案的目的,本研究基于的裂纹原理还属于非常概念性的,计算也是简化的。对各种裂纹的发生和发展原理进行深入研究,继而转化为严谨的算法,可以实现不同裂纹图案的生成与模拟,后续研究将在此方面进行拓展。
参考文献
[1] STINYG. Ice-ray: A note on the Generation of Chinese Lattice Designs[J]. Environment and Planning B, 1977(4): 89-98.
[2] STINY G. Shape: Talking about Seeing and Doing[M]. The MIT Press, 2006: 330-340.
[3] Shape Grammars of Ice-ray Chinese Lattice Designs[EB/OL].http://web.mit.edu/~haldane/www/icerays.
[4] THÖNNISSEN U. A Form-Finding Instrument for Reciprocal Structures[J]. Nexus Netw Journal, 2014(16):89-107.
[5] 过汉泉,陈家俊.古建筑装折[M].北京:中国建筑工业出版社,2005: 97-103.