我正在嘗試使用UIBezierPath
繪製長方體形狀。我的繪圖代碼如下:如何平滑貝塞爾路徑中的連線?
((X,Y)是我UIView
及(h起源,W)是它的大小)
UIBezierPath *bpath1 = [UIBezierPath bezierPath];
[bpath1 moveToPoint:CGPointMake(x, y + h * 0.4)];
[bpath1 addLineToPoint:CGPointMake(x, y + h)];
[bpath1 addLineToPoint:CGPointMake(x + w - (w * 0.4), y + h)];
[bpath1 addLineToPoint:CGPointMake(x + w - (w * 0.4), y + h * 0.4)];
[bpath1 closePath];
UIBezierPath *bpath2 = [UIBezierPath bezierPath];
[bpath2 moveToPoint:CGPointMake(x + w * 0.4, y)];
[bpath2 addLineToPoint:CGPointMake(x + w, y)];
[bpath2 addLineToPoint:CGPointMake(x + w - (w * 0.4), y + h * 0.4];
[bpath2 addLineToPoint:CGPointMake(x, y + h * 0.4];
[bpath2 closePath];
UIBezierPath *bpath3 = [UIBezierPath bezierPath];
[bpath3 moveToPoint:CGPointMake(x + w, y)];
[bpath3 addLineToPoint:CGPointMake(x + w, y + h - (h * 0.4))];
[bpath3 addLineToPoint:CGPointMake(x + w - (w * 0.4), y + h)];
[bpath3 addLineToPoint:CGPointMake(x + w - (w * 0.4), y + h * 0.4];
[bpath3 closePath];
我在3路,因爲我想不同的α值,每路徑。我得到了想要的輸出,低於:
但讓我驚喜的h
(高度)很少價值觀,我得到了形狀如下:
現在,這種形狀出現的數量很少。由於渲染代碼每次都是相同的,所以我不理解貝塞爾路徑的這種奇怪行爲。爲什麼bezier路徑顯示這種行爲,並有什麼辦法來平滑這些關節?
那麼如何計算miterLimit值呢?您提供的鏈接將該值設置爲-10,這不能解決問題。 – blancos 2014-09-15 05:56:21