布尔运算的框是第一个操作数的框,永远不会跟随所绘制的内容。
作者: danikobeissi创建于 2026年9月20日更新于 2026年9月20日
- 立即。 将一个位于(10, 20)的 30x30 的矩形与一个位于(60, 70)的 20x20 的矩形进行联合。节点的框被报告为 30x30,位于(10, 20);所绘制的内容覆盖了(10, 20)到(80, 90)的区域。
- 之后。 将第一个操作数移动 100 个单位向上和向左。绘图跟随它;框完全没有移动,现在完全位于绘图之外。
- 在自动布局框中。 行通过该框来放置操作,因此它会与邻居重叠或留下空隙,具体取决于框的错误程度。
预期结果
节点的框保存了它所绘制的内容,并且随着操作数的变化而保持这一内容 — 就像 Figma 中的组一样,以及编辑器的 wrapSelectionInContainer 函数在创建组时所做的那样。可见操作数的框的联合是没有路径引擎的可用框;它对联合来说是精确的,并且保留了其他三种操作的绘图内容。
位置
packages/core/src/figma-api/index.ts,_booleanOperation,第 365-388 行,e2de247(x: first.x, y: first.y, width: first.width, height: first.height)。- 取而代之的绘图内容:
packages/core/src/canvas/boolean.ts,makeBooleanOperationPath。 - 到达此处的工具:
packages/core/src/tools/vector/boolean.ts—boolean_union、boolean_subtract、boolean_intersect、boolean_exclude。
内容来源: open-pencil/open-pencil