2013-09-25 49 views
2

我試圖繪製一條與自身重疊的描邊路徑,但這樣做的方式可以告訴路徑的哪一部分位於另一條路徑的頂部。你可以繪製一個與自身重疊的撫摸貝塞爾路徑嗎?

一個問題我遇到的是一個路徑將連接到它,如果它與自身重疊。所以我試圖通過繪製兩條獨立的路徑來解決這個問題。

two separate paths

這個工作,除了從第二行的行程大視覺從第一斷開它。

separated line

有沒有辦法做到這一點比試圖在重繪平分這兩條路徑的行程清潔?

編輯:爲了澄清,我正在做的其實是畫胖黑線,然後彩色線條上層建築得到中風的影響。

+1

是什麼樣子,如果你使用kCALineCapButt? –

+0

中風的黑色仍然延伸穿過彩色部分,並獲得與上述相同的效果,只是平坦的一端。 – dustins

+0

不,我錯了,那是有效的!如果我將彩色路徑kCGLineCapSquare或kCGLineCapRound和它下面的黑色線條kCGLineCapButt製作,它看起來很完美! – dustins

回答

0

照着上述猜測,該解決方案是使用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 pointsthird path with control points

  5. 最終結果與刪除控制點。我在「填充」(黑色)路徑段之後撫摸完整路徑的起點和終點後,繪製了「我的筆畫」(黑色)寬度的直徑,以使其端部看起來像圓形對接帽樣式。 full curve