形状代数

1 形状

1.1 形状代数表

Stiny在1992年系统地提出了形状代数$U_{ij}$,对形状文法进行了扩展。

理解形状代数需要离散数学的知识

形状代数阶梯表

$U_{00}$ $U_{01}$ $U_{02}$ $U_{03}$
$U_{11}$ $U_{12}$ $U_{13}$
$U_{22}$ $U_{23}$
$U_{33}$

代数$U_{ij}$ 的含义是在$j$维上操作$i$维形状。$i$维形状的边界是$U_{i-1,i}$中的形状,因为$i$维形状不能被小于$i-1$维的形状分割成更多部分:点分割线,线分割面,面分割体。形状是基本元素的有限集或空集。基本元素是极大元:任意两个基本元素彼此独立,不互相包含。

具体从包括的形状来说, $U_{0j}$ 是点, $U_{1j}$ 是线, $U_{2j}$ 是面, $U_{3j}$ 是体。所以阶梯表所包含的形状是:

线上的点 面上的点 体上的点
线 面上的线 体上的线
体上的面

1.2 形状代数运算

使用$\{R\}_U$表示关系运算,则

  • $U_{ij}$中的形状通过蕴含$\leq _U$关系运算而形成偏序集(即某些形状可能是另一些形状的一部分,也可能不是);
  • 通过布尔关系运算$+_U$,$-_U$组合,形成有补分配格。

    $U_{ij}$在j维的欧式变换下是封闭的。

极大元、蕴含、和、差可以有多种定义方式:

  • 一种是直接通过嵌入定义,这是基本元素的基本关系。例如一条短线嵌入在另一条长线中。但这种关系太过于基本了,导致实现上述那些运算比较复杂且内隐;

  • 另一种方法是显式定义。按照基本元素的嵌入关系,构造化简规则,定义上述运算。和或者差就可以用来定义蕴含。

2 标记

和形状文法中的标记一样,定义和形状的定义是类似的。标记用于区分相同的形状,或建立不同形状的联系。

标记代数是标记表中的标记、布尔运算组成的代数系统,对欧式变换封闭。$V_{ij}$就将标记和形状结合到一起,形成新的代数系统。标记形状记为$(e,a)$,其中e是$U_{ij}$中的形状,a是标记。

3 权重

这里从视觉效果给点加上了半径,线加上了粗细,面和体加上了填充色——这些就是权重。

权重也可以进行运算。布尔和显然是取了权重大的部分和剩下的部分,如细线和粗线有一部分重合,那么布尔和结果就是全部粗线和细线剩下的部分,即$u+v=\max \{ u,v \}$。布尔差的定义则要复杂一些,对于 $u-v$,如果 $u>v$,则结果就是代数差;否则为0。

带权形状的布尔和

4 带权形状

将标记引入形状得到标记性状,那么将权重引入形状则得到带权形状代数$W_{ij}$。从权重的定义已经可以看到带权形状代数的性质。

这样,便将形状、标记、权重统一在了一个理论框架内,其中的运算为蕴含、布尔和、布尔差,欧式变换。U,V,W可以进行组合,形成更复杂的结果。

5 形状文法

有了形状代数的定义,形状文法就可以在其基础上扩展了。形状规则$A \to B$作用于形状C时,其运算机制为$[C -_X t(A)] +_X t(B)$,其中$-_X$是X上的布尔差运算,$+_X$是X上的布尔和运算,X是U,V,W中的任何一个。

参数化形状文法中,A(x)是形状框架,x是变量的有限集(可以是空集)。F决定变量x的取值。单一的U,V,W代数中,变量的取值是基本形状,或标记形状/带权形状的有序对;由U,V,W组合而成的代数中,变量的取值可以使多种类型的有序对。

带权形状$W_{ij}$中,F给A(x)中变量的赋值是基本元素和权重的有序对(e,u)。但此时F[A(x)]可能不是形状(为什么?)。此时,令$A(i + 1) = A(i) +_W \{(e_{i+1}, u_{i+1})\}, A(0)=\varnothing$。通过此布尔和递推公式确保F[A(x)]是形状。

6 扩展

6.1 非直线形状和嵌入空间

Jowers指出,$U_{ij}$形状代数实际上是直线形状(维度为i)嵌入到不同维度欧式空间中(维度为j)。这会带来一些问题:

  • 直线形状是自相似的,直线可以以无限的方式嵌入(欧式变换)到另一直线中,任意两直线(方形平面、立方体等)互为子集;但是对于非直线形状,如圆弧,必须是短圆弧才可以嵌入到长圆弧,虽然嵌入放肆无限,但互为子集不成立。抛物线更甚——嵌入的方式都已经不是有限的了(只有两种方法,即嵌入到轴对称的两个位置)。

直线形状和非直线形状的嵌入

  • 视觉嵌入和解析嵌入对直线形状是绝大部分时候是相同的,但对于非直线形状,除非解析式相同,否则视觉嵌入和解析嵌入不可能相同。虽然大牛Ramesh Krishnamurti提倡能够清晰描述形状的解析嵌入,但视觉上的相似在设计中很重要。而为了统一二者,只能通过样条曲线拟合或计算机视觉的方法来实现,不过尚未对形状代数进行扩展。

视觉嵌入vs解析嵌入

更进一步,考虑非欧空间的情况,比如圆锥空间,直线可以仅通过旋转就和各种圆锥曲线互相转化。

圆锥空间

这些都是$U_{ij}$所不包括的内容。所以形状代数有待进一步发展完善。

6.2 形状分解

可以用有限元素将一个形状进行分解,于是可以用有限的部件集来描述形状的分解。于是问题就来了:

  • 集合可以通过交并差来扩展(我认为这不是问题,作者也没有详细讨论);
  • 形状的分解从哪里来?计算。计算生成形状。传统的CAD系统都是用形状分解出来的部件来描述形状。不过Jowers认为,并不是所有的计算都生成形状。

关于形状分解从哪里来,我有一些自己的想法,将在以后进行介绍。


参考文献

[1] Stiny G. Weights. Environment and Planning B: Planning and Design. 192. 19: 413-430.

[2] Jowers I, Earl C. Extending the Algebras of Design. Nexus Network Journal. 2015. 17(3): 947-962.

[3] Jowers I, Earl C, Stiny G. Shape Computations Without Compositions. International Conference on Computer-Aided Architectural Design Futures. Singapore. 2017: 348-365.