建筑的几何图元相对复杂,这也是Processing在建筑设计中运用的一大限制。在此之前还没有在Processing内建建筑实体的案例,作为首创,本案例的意义在于介绍一种新的设计研究途径,为将来提供借鉴。
第一步是提取《营造法原》的构件尺寸关联信息。这些关联信息主要由书本中的一些工匠口诀、歌谣、图表得来。从中发现,全书对建筑外形轮廓以及柱间关系的描述非常多(图4和图5),经过取舍,只选取了3个初始参数(图6),分别是开间、进深和开间数。由这三个参数基本可以确定整个建筑轮廓和结构构件。不过,在整理版的书中舍去了很多工匠口诀,导致一些关联因素中断。例如屋檐出挑长度和很多构件似乎都有联系,但所提供的信息较含糊,无法获取具体的对应公式。
图4 《营造法原》中的构件关系
(《营造法原》)
图5 《营造法原》屋架关系
(《营造法原》)
图6 选取参数
第二步是选择几何库。开源的几何库很多,但考虑到完整性和易懂性,选择的是OpenNurbs的C++版本(也有Python和.net的版本)。考虑到编译Android程序的方便性,其实是将用到的几何类(class)仿写成Java版本。具体几何体创建过程可以仿造OpenGL的写法,例如建筑的交接处的一些绘制手法(图7)。在计算机中定出相对坐标系,这个坐标系可以由两个平面确定。为了方便显示,同时反转了公共坐标系。(www.xing528.com)
图7 几何创建
第三步是图形的表达。无论模型多么复杂,细节多么烦琐,基本的计算模型还是比较简单的,条形构件一般采用线和两个平面或一个矩阵表示。如柱础(图8)是由一条直线和一个包含拉伸和缩放变换的矩阵组成。单体构件完成之后再由普通构件组成群组(图9)。不同结构体系的建筑有各自不同的生成逻辑(图10),但基本的逻辑关系大体相似。整个编程耗费了两个月时间。
图8 柱础
图9 构件组成群组
图10 不同结构体系的建筑有各自不同的生成逻辑
最后的成果是一个在手机上都可以运行的程序。只要输入开间、进深和开间数三个参数,就能生成不同的建筑模型(图11)。整个过程看起来就像是三维建模,只不过这个过程全由计算机运算而来,而且只要50毫秒。
图11 输入参数并生成模型
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。