布尔运算

如果Sketch中的标准图形不能满足你,那么你可能需要创建属于自己的图形了。你首先可能会想到的是用矢量工具直接绘制出来。但是你会发现,很多情况下,一个复杂的图形可以分解为很多基础图形。使用布尔运算工具可以很容易帮你做到这一点,用基本的图形工具经过运算,就可以形成一个复杂的图形。

 

子路径

Sketch支持动态布尔运算功能,在我们讨论这些细节之前,需要先回顾下矢量图形。大多数矢量图形都会包含一系列的点,一个路径。但是一个图形可以包含很多子路径,最终图形是什么样子,取决于它们是如何结合的。

当在Sketch中执行一个布尔运算的时候,它会将最上边的图形作为下一层图形的子路径。由于sketch中的布尔运算是动态的,你可以随时调节每一个子路径,例如,一个作为子路径的矩形,你可以独立调整它的边角的圆角半径。此时布尔运算的效果也将随时发生变化。

 

运算

Sketch中有四种不同的布尔运算方式,你可以根据情况作出选择。

operations@2x

・合并(Union):执行合并后,你将得到两个形状区域的和。

・减去(Subtract):将上一层的形状区域与下一层的形状中的重叠部分,从下一层的区域中挖去,同时只保留下一层被挖去后的区域。

・相交(Intersect):取两个形状相交的部分。

・排除(Difference):将两个形状相交的部分挖去,保留其它部分。

你可以通过下面的视频更快速的了解布尔运算功能:

 

图层列表

当你操作一个包含多个子路径的图形时,请注意查看图层列表,你会发现布尔运算后的图形的文件结构类似于组的结构。点击左侧的箭头即可展开图形中的子路径列表。在子路径列表的右侧,你可以自由选择布尔运算的类型。

子路径列表的顺序是从下到上的,你执行运算的布尔图层将会和下一层的子路径进行运算。它们的运算结果再和上一层的子路径进行再次运算。

boolean-operations@2x

图层平面化

当在Sketch中使用平面化工具时,它会尝试将这个图形中的子路径呈现为一个路径;就是说,扁平化图层结构。但是很多路径是不能被平面化为一个路径的,比如一个环形,只能有两个路径:一个是外圈的圆,一个是内圈的圆。

 

如果Sketch不能执行平面化命令时,你会看到一个警告提示。但如果你一定要坚持平面化,子路径可能会被替换,也许数量更少,但也许也会更多。

 

也许你有其它软件的使用习惯,每次做完布尔运算后都要平面化一次。但在Sketch中,你没有必要这么做,只需要在运算好的图形上继续做布尔运算就好。