← 返回函数库

splitArea

Geometry Subdivision Area 已实现

CityEngine 官方语法

splitArea(axis) { area1 : operation1 | area2 : operation2 | ... }
splitArea(axis) { area1 : operation1 | area2 : operation2 | ... }*

参数说明

参数类型默认值说明
axisselector分割轴:x、y 或 z。
areafloat每个片段的目标面积。

描述

按面积分割当前形状。与 split 不同,splitArea 按目标面积而非固定尺寸进行分割。常用于按楼层面积划分建筑。

当前实现为正方形近似分割。若总面积不等于各片段面积之和,会自动缩放。

官方示例

按 X 轴面积分割:

Lot --> splitArea(x) { 20 : Floor1 | 30 : Floor2 | remainder : Floor3 }

重复模式:

Lot --> splitArea(y) { 10 : Floor }*

代码编辑器自动补全

轴枚举值补全:输入 splitArea( 时,补全列表显示:
splitArea(x)splitArea(y)splitArea(z)
可直接选择对应的分割轴。

实现说明

CGA.js 中的 splitArea 实现基于 CityEngine 2025.1 官方文档。

🎨 3D 预览 — 按面积分割

@StartRule
Lot --> primitiveCube(8, 0.2, 6)
        splitArea(x) { 20 : Left | 30 : Center | remainder : Right }

Left   --> color(1, 0, 0)
Center --> color(0, 1, 0)
Right  --> color(0, 0, 1)