矢量中的布尔运算
除了钢笔,Figma 还提供了布尔运算的方式来创建自定义矢量图形。而使用该功能前,可以先了解布尔运算一词的来源。
首先布尔运算(Boolean)是根据19世纪的英国数学家乔治· 布尔(George Boole)而命名,他创造了一套代数系统,用于进行非数字的逻辑运算,如求多个对象的 交集、并集、差集(即计算机系统中的与 AND、或 OR、非 NOT)。
为了对这种抽象概念进行解释,数学教材经常会使用多个圆来表示这种运算逻辑,如下图:
这套代数系统成为现代编程逻辑的基石,而这套解释的图形元素相交的规则,也被应用到矢量软件中来。
在 Figma 中,提供了四种布尔运算方式:
注:在一些 Figma 汉化插件中,会出现将对称差集混淆成差集的现象,对应解释以本知识库的翻译和概念为准。
Union Selection 联合所选项: 即并集,将 两个图形进行相加
Subtract Selection 扣减所选项:即差集,在下层图形中减去上层图形的部分
Intersect Selection 相交所选项:即交集,仅保留两个图形相交的部分
Exclude Selection 排除相交所选项:即对称差集,除去两个图形相交的部分,其他保留
要使用布尔运算,必须选中多个矢量图层,再属性栏选项中就会提供对应的运算选项。而文字、编组等无法进行布尔运算。
进行布尔运算后,多个矢量图层会被合并成一个布尔运算编组,该编组在画布中会以运算的结果样式呈现,而原矢量图层会被保留在下级图层。
布尔运算编组的应用虽然有很多优点,方便我们对下级图层进行调整从而修改最终图形。但它并不完美,其中最重要的就是 —— 不要套娃,即使用多个布尔运算后的编组图形反复进行布尔运算,这样容易产生有故障的图形结果。
所以,Figma 在布尔运算下方提供了一个合并图层 Flatten Selection 的功能,选中布尔运算编组后再使用该功能,就可以对下级图层进行清空,将布尔运算编组转化为普通的矢量图层。
当需要进行多层布尔运算,或是要导出矢量切图时,建议就使用该功能来合并矢量图形,确保最终结果的可用性。