Categories: 信息

形状语法

计算中的形状语法(Shape grammar)是生成几何形状的特定类生产系统。 通常,形状是二维或三维的,因此形状语法是研究二维和三维语言的一种方式。 1971年George Stiny和James Gips在一篇开创性文章中定义了形状语法的基础。

定义
形状文法由形状规则和选择和处理规则的生成引擎组成。 形状规则定义了现有(部分)形状可以如何转换。 形状规则由两部分组成,由从左到右指向的箭头分开。 箭头左侧的部分被称为左手侧(LHS)。 它描绘了一个形状和一个标记的条件。 箭头的右侧部分被称为右侧(RHS)。 它描述了LHS形状应如何转换以及标记的位置。 标记有助于定位和定位新形状。

形状文法最低限度地由三个形状规则组成:起始规则,至少一个转换规则和终止规则。 启动规则是启动形状生成过程所必需的。 终止规则是停止形状生成过程所必需的。 停止该过程的最简单方法是通过删除标记的形状规则。 形状语法不同于乔姆斯基语法的一个主要方面:生产规则可以连续地(与乔姆斯基语法相同)或并行(在乔姆斯基语法中不允许)应用,类似于在L系统中完成“生产”的方式。

形状语法系统还有一个工作区域,在其中显示创建的几何图形。 生成引擎检查现有几何体,通常称为当前工作形状(CWS),以查找与形状规则的LHS相匹配的条件。 符合LHS的形状规则可以使用。 如果应用多个规则,则生成引擎必须选择应用哪个规则。 在另一种情况下,引擎首先选择一种语法规则,然后尝试在CWS中查找该规则的LHS的所有匹配。 如果有几个匹配,引擎可以(取决于其配置/实现)

形状语法被正式定义为一个4元组  ,

  • 是一组有限的字符,
  • 是一组有限的人物,所以
  • 是一套有限的生产规则
  • 是由元素组成的起始数字

人群的元素  是任何数量元素的有限排列  与任何缩放或方向。

元素关闭  这在一个规则  出  或in  事件被称为终端数字。

元素关闭  是所谓的非终端数字或标记。 分子  出  被称为形状规则或生产规则,并且处于形式中  写下来。

左侧  是一个由元素组成的图  结合一个元素  ,

右侧  是一个数字,由相同的元素组成  这在  发生,相同的元素  在  ,结合一个元素  或者相同的元素  在  ,另外还有一个元素  结合一个元素  ,

 是起始人物,由元素组成  和  它通常由至少一个元素组成  在一个规则  在  发生。

将规则并行应用于所有匹配,
将规则连续应用于所有匹配(这可能会导致不一致)或者
选择其中一个检测到的匹配,并将规则应用于此匹配。
当限定在一个小的,明确定义的发电问题(如住房布局和结构细化)时,形状语法是最有用的。 由于形状规则通常是在小形状上定义的,因此形状语法可以快速包含很多规则。 例如,William Mitchell提出的palladian别墅造型语法包含69个规则,这些规则贯穿八个阶段。

Related Post

参数化形状语法是形状语法的延伸。 形状规则的RHS中的新形状由参数定义,以便它可以考虑更多已存在形状的上下文。 这通常影响新形状的内部比例,以便可以创建更多种形式。 通过这种方式,试图使形状语法对结构条件作出响应,例如屋顶结构中取决于跨度的梁的宽度。

尽管它们在学术界广受欢迎和适用,但形状语法在普通计算机辅助设计应用中还没有广泛使用。
描述

形状语法由规则和生成引擎组成,用于选择和处理或计算规则。 一条规则定义了现有图形(或其中的一部分)如何在几何空间中进行转换。 形状语法的定义遵循乔姆斯基的短语结构语法的标准定义,使用形状而不是符号。

形状语法通过递归地应用形状规则来生成一个图形,从起始图开始。 将规则应用于现有人物的结果始终是由现有人物组成的新人物,新人物中规则左侧的出现被规则右侧的人物所取代。

形状语法最低限度由三个生产规则组成(=形状规则)。 初始规则,至少一个转换规则和终止规则。 启动规则是启动生成过程所必需的,而调度规则是完成生成所必需的。 停止该过程的最简单方法是删除标记(=非终止符)。 与乔姆斯基语法不同,形式语法中的生产规则不仅可以串行应用,而且可以并行应用,类似于L系统的顺序。

形状文法系统通常有一个特定的工作空间,其中显示生成的形状。 生成引擎检查现有图形是否与形状规则左侧的条件匹配。 如果找到多于一个合适的规则,则引擎决定应用哪一个。 另一种方法是首先选择一个规则,然后搜索左侧与当前数字的所有匹配项。 有几个匹配,取决于实施

  • 该规则并行应用于所有匹配,
  • 规则适用于所有匹配串行(可能导致不一致)或
  • 选择了其中一个匹配项,并且该规则仅适用于该区域。

参数化形状语法形状语法的延伸。 而不是生产规则,Shape规则模式(  ),它由参数图组成。 通过将具体值插入到变量中  和  定义新的形状规则,然后以通常的方式使用新的形状规则来创建新图形。 通过这种泛化,可以产生更大的数字变化。

应用
形状语法最初是为绘画和雕塑展示的,但从那时起,它主要应用于建筑学(计算机辅助建筑设计)。 形状语法特别适用于小的,明确定义的问题,例如建筑物的内部结构和布局。 形状语法通常由大量的规则组成。 例如,William Mitchell提出的以意大利建筑师Andrea Palladio风格创作别墅的造型语法由69条规则组成,这些规则应用于8个实施步骤。

与体系结构类似,近几十年来,形状语法在计算机图形学中越来越重要。 形状语法主要用于建筑物或城市的程序建模(例如电影或视频游戏)。 Shape Grammars是许多开发系统的基础,它们使用生产规则来生成各种不同的3D模型。 使用Shape Grammars可以创建具有逼真外观的街道平面图,以及建筑物的外墙或内部空间。

形状语法已被应用的其他领域包括工业设计和工程。

软件原型
这是一个网上可用的软件原型列表(其中有几个严格来说就是设置语法系统):

语法环境
葡萄
SD2
形式语法解释器
Shaper2D
spapper
SubShapeDetector
樱早法仕建筑发电机

Share