CGA 函数

函数用于封装在规则中多次使用的评估。 与规则不同,函数需键入(即函数会返回值)且不会更改当前形状。 函数可以为参数化函数、条件函数和随机函数。

示例

getHeight(area) =
   case area > 1000 : 300
   case area > 500 :
      20% : 200
      50% : 150
      else : 100
   else : rand(20,50)

getHeight 函数采用了一个浮点参数 (area),并可根据该参数返回高度。 如果 area 大于 1000,则返回 300。 如果 area 大于 500(但小于或等于 1000),则返回值将为 200、150 或 100,且概率为 0.2、0.5 和 0.3。 如果 area 小于或等于 500,则会返回 20 与 50 之间的随机值。 使用 getHeight 的规则可能如下所示:

Lot --> extrude(getHeight(geometry.area)) Envelope

注:

不同于属性,每个调用中都会对函数进行评估。 这意味着以下函数

height = rand(30, 50)

只有在用于专用目的时才有意义,因为每次使用该函数时都会返回不同的值。

常量函数

可以使用 const 关键字将函数设为常量函数。 常量函数的行为与 attrs 相同,唯一的区别是常量函数在规则文件内部,且无法在检查器中进行映射。


在本主题中