'发布' CompoundPath

时间:2016-11-10 16:40:48

标签: svg paperjs

我有一个复杂的形状,是使用CompoundPath生成的,有多个Path个孩子。这是一个示例形状:

enter image description here

我想知道paperjs上是否有某种方法或某种其他方式生成简单Paths,其中包含所有Paths的组合生成的不同形状CompoundPath,类似Release操作Adobe Illustrator,如here所述。

我需要这个,以便能够使用Path属性填充不同的fillColor,这在CompoundPath内是不可能的。

2 个答案:

答案 0 :(得分:0)

compoundPath.parent.addChildren(compoundPath.children)与paperjs中的Release类似。

我创建an example

答案 1 :(得分:0)

我终于按照here的说法解决了这个问题。引用@iconexperience

  

我认为你需要做的是在你的上面调用setClockwise(true)   然后调用CompositePath然后调用reorient()。这将设置方向   (顺时针/逆时针)每个子路径,如果几个   路径堆叠在彼此之上,它们的方向将是   交替。从底部路径以顺时针方向开始。之后,   如果CompoundPath中子项的方向是顺时针方向   代表图像中的“洞”或白色区域。顺时针方向   方向意味着路径已经填满。

     

然后,如果您克隆CompoundPath的子项并填充它们   顺时针方向为棕色,其他为白色   颜色,你应该有一个看起来像原始的结果。

     

reorient()只有在两者之间没有交叉点时才有效   路径。另请注意,reorient()仅适用于   Paper.js的开发版本。