你能画一条重叠的bezier路径吗?

时间:2013-09-25 23:43:01

标签: ios uikit core-graphics

我正在尝试绘制一条与自身重叠的描边路径,但这样做的方式可以让你知道路径的哪一部分位于另一部分之上。

我遇到的一个问题是,如果路径与自身重叠,路径将连接到自身。所以我试图通过绘制两条不同的路径来解决这个问题。

two separate paths

这很有效,除了第二行的笔划在视觉上将它与第一行断开。

separated line

有没有办法做到这一点比试图重新划分两条路径的笔划更干净?

编辑:为了澄清,我实际上在做的是绘制一条更粗的黑线,然后用一条彩色线条来获得笔触效果。

1 个答案:

答案 0 :(得分:0)

正如Jesse上面提到的,解决方案是使用kCGLineCapButt作为路径段“笔划”部分的lineCapStyle。

这样做可以非常简单地创建我想要的效果。如果要动态生成路径,最大的烦恼是确定绘制路径段的顺序。

您还必须注意,任何两个控制点与它们共享的路径点共线(具有相同的斜率),否则对接端将不会完全对齐。但是如果你想要平滑的连接,你应该这样做。

  1. 使用对接帽样式描绘您的底部路径段。这将是您路径段的“笔划”(黑色)。 first path stroked for border with butt ends

  2. 再次使用圆帽样式和略微更宽的宽度来描绘您的底部路径段。这将是您细分的“填充”(颜色)。 first path stroked for fill with round ends

  3. 为了更好地说明我的曲线,我添加了控制点。 first path with control points

  4. 根据需要重复... second path with control points third path with control points

  5. 删除控制点的最终结果。我还在我的完整路径的起点和终点处画了我的“笔画”(黑色)宽度的直径,然后抚摸“填充”(黑色)路径段,使得两端看起来像圆形的帽子样式。 full curve