语法
- splitArea(axis) { area1 : operations1 | area2 : operations2 | ... | arean-1 : operationsn-1 }
- splitArea(axis) { area1 : operations1 | area2 : operations2 | ... | arean-1 : operationsn-1 }*
- splitArea(axis, adjustMode) { area1 : operations1 | ... | arean-1 : operationsn-1 }
- splitArea(axis, adjustMode) { area1 : operations1 | ... | arean-1 : operationsn-1 }*
参数
- axis - 选择器{ x | y | z } - 分割时随沿的轴的名称。 这相对于局部坐标系(即,scope)。
- adjustMode{ adjust | noAdjust } - 用于控制所计算形状的范围计算的可选选择器。 默认设置是将范围调整为几何的边界框。 使用 noAdjust 可以避免这种情况,因此生成的形状的范围将无缝填充父项的范围。
- area - 浮点型分割面积。 当前形状分割为生成的形状具有指定面积。 根据前缀,area 解释如下:
- 无前缀(绝对)- 新形状具有完全相同的 area。
- '(相对)- 新形状大小将为 area * 当前几何面积。
- ~(浮动)- 使用 ~ 前缀,具有绝对维度的分割部分之间的剩余空间将自动调整。 如果在一个分割内定义了多个浮动部分,则将按比例对维度进行加权。
- operations要在新创建的形状上执行的形状操作的顺序。
- *重复切换按钮:重复切换按钮触发已定义分割的重复操作(分割为当前形状的 scope),并进行尽可能多的重复。 将调整重复次数和浮动维度以适合最佳解决方案(最佳重复次数和最小拉伸)。
说明
splitArea 操作用于沿指定 scope 轴将当前形状几何细分成几何面积由 area 参数指定的一组形状。 此操作适用于平面 2D 几何以及近平面几何。 非平面几何会降低面积精度。 此操作不适用于 3D 几何,例如网格或高度非平面几何。
对于每个指定的 area,将使用垂直于分割轴的平面切割当前形状几何,以使生成的形状包含具有指定面积的几何。
可使用可选重复切换按钮 * 多次重复 { ... }* 块中的内容,直到其在选定轴方向上完全适合范围维度。
相关内容
示例
颜色
这些规则适用于在以下示例中使用的颜色。
Red --> // red
color(1, 0, 0)
print("area(R) = " + geometry.area)
Yellow --> // yellow
color(1, 1, 0)
print("area(Y) = " + geometry.area)
Green --> // green
color(0, 1, 0)
print("area(G) = " + geometry.area)
Cyan --> // cyan
color(0, 1, 1)
print("area(C) = " + geometry.area)
Blue --> // blue
color(0, 0, 1)
print("area(B) = " + geometry.area)
Magenta --> // magenta
color(1, 0, 1)
print("area(M) = " + geometry.area)
Pink --> // semi-transparent pink
color(1, 0.5, 0.5, 0.3)
此形状分割成两部分。 第一部分为原始面积的 70%,第二部分为原始面积的 30%。 请注意,指定面积数量的总和不需要为 1。 如果总和小于 1,将删除形状的其余部分,将忽略大于 1 的分割部分。
|
重复分割
此分割使用重复分割将形状划分成五个等积部分。 它会重复将形状分割成面积等于初始面积 20% 的几个部分。 请注意,如果面积设置为 '0.3,将获得面积等于原始面积的 30%、30%、30% 和 10% 的四个部分。
|
使用浮动和绝对面积进行分割
此分割用于将形状划分成具有绝对面积 600 的中间部分(黄色)以及两个面积相同的侧部分。 黄色部分由两部分组成,因为原始形状中有一个孔,分割会沿孔边界剪切形状。
|
嵌套分割
此嵌套分割首先会在 x 方向上划分形状,以获取三个等积部分。 然后,在 z 方向上将每个部分划分成两个相等部分。 这将生成六个等积部分。
|
adjust 与 noAdjust
这是原始形状及其范围。 | |
如果未指定 adjustSelector 的值,则默认行为是将范围大小调整为每个分割部分的几何。 每个粉色框显示每个分割部分的范围。 范围会保留原始范围的方向,但是会缩减为几何的边界框。
| |
如果使用 noAdjust,则每个分割部分范围的并集将组成原始范围。 范围不会调整为几何内部。
|
将区块拆分成多个相等部分
这是原始形状及其范围。 下面是如何使用 splitArea 操作将街区拆分成多个等积地块的示例。 | |
将使用 splitArea 以递归的方式拆分块。 每个分割会将形状垂直于其最长轴划分成两个等积部分。 将根据面积对每个地块进行着色,这样具有相同面积的地块会具有相同的颜色。 使用 splitArea 时,所有地块为黄色,因为区块划分为等积地块。
| |
与之相比,使用分割操作时,地块颜色不同,因为区块划分为面积不同的地块。
|