跳到主要内容

Function: planClose()

planClose(areas, id, opts?): ClosePlan | null

Defined in: geometry/commands.ts:152

规划关闭:把 id 的区域并入紧邻的区域。

按 [左, 右, 上, 下] 找「与 R 共享整条边」的邻居集合 N: ① 每条候选垂直于该边必须落在 R 的跨距内(否则并集不是矩形); ② N 的重叠区间必须正好铺满 R 的该条边(首尾相接、无空隙、不重叠); ③ 先取 |N| === 1 的(纯 guillotine,等价于 findSharedEdge 的情形), 都没有才用 |N| > 1 的整组扩张 —— 后者产出的是"T 型交会处的分摊闭合"。 四边都不成立 → null,调用方不得改动任何东西

Parameters

areas

readonly Area[]

目标屏幕的区域(只读,本函数不修改)

id

number

要关闭的区域 id

opts?

exclude?

readonly number[]

不可作为吞并方的区域 id(dock 用:停靠槽与目标区不能吞源区)

Returns

ClosePlan | null

落地方案;无解返回 null