我正在尝试在iOS中建立多个CGPath的联盟。我怎样才能做到这一点?
我尝试使用“path.AddPath()”添加组合路径但是我得到了这种奇怪的伪像,好像它正在进行Join而不是Union。我也尝试过使用“path.CopyByStrokingPath()”,但它也留下了这些奇怪的空白区域。我注意到CopyByStrokingPath的参数是“CGLineJoin”,但我真的想要“CGLineUnion”,但这似乎不存在。
基本上你在这里看到的,我在每个物体周围做一个圆形路径,然后在每个物体之间制作矩形路径以填补空隙。然后我将所有路径组合在一起,并在两者之间获得这些尴尬的白色空间(当我想要它完全填满时)。我可以使每个形状(圆形和矩形)成为一个单独的图层然后空间消失,但是我只有一个图形的15个单独的图层....我真的只想组合路径并将它绘制到一个CAS形状上层
参考文献
答案 0 :(得分:0)
事实证明,由点和&创建的矩形之间存在很大差异。行与通过CGPath.AddRect创建的矩形。
CGPath path = ...
CGRect rectToDraw = ...
CGAffineTransform transform = ....
path.AddRect (transform, rectToDraw);
如果您想要重叠形状并使重叠部分完全像逻辑联盟一样填充,则上述方法有效。
以下代码不会像联盟一样重叠,并产生尴尬的差距,如原始帖子中的屏幕截图所示。它似乎使用其他逻辑表达式重叠
CGPath path3 = new CGPath ();
path3.MoveToPoint (100, 100);
path3.AddLineToPoint (100, 250);
path3.AddLineToPoint (350, 250);
path3.AddLineToPoint (350, 100);
path3.CloseSubpath ();