Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 无法清除贝塞尔路径上的尖峰_Objective C_Ios7_Core Graphics - Fatal编程技术网

Objective c 无法清除贝塞尔路径上的尖峰

Objective c 无法清除贝塞尔路径上的尖峰,objective-c,ios7,core-graphics,Objective C,Ios7,Core Graphics,我正在绘制一些简单的bezier路径,但我发现不可能删除线段之间的角度很小时创建的尖峰: (注意:圆来自单独的绘图操作,但我正在尝试确保线不会穿过圆…) 我尝试过lineCapStyle和lineJoinStyle的各种变体,但似乎都不起作用。 除了下面显示的内容之外,我还尝试使用带有“setMiterLit”的斜接连接 这是我的线条画代码剪贴画: CAShapeLayer *myShapeLayer=[CAShapeLayer layer]; UIBezierPath *myPath=[UI

我正在绘制一些简单的bezier路径,但我发现不可能删除线段之间的角度很小时创建的尖峰:

(注意:圆来自单独的绘图操作,但我正在尝试确保线不会穿过圆…)

我尝试过lineCapStyle和lineJoinStyle的各种变体,但似乎都不起作用。 除了下面显示的内容之外,我还尝试使用带有“setMiterLit”的斜接连接

这是我的线条画代码剪贴画:

CAShapeLayer *myShapeLayer=[CAShapeLayer layer];
UIBezierPath *myPath=[UIBezierPath bezierPath];
[myPath moveToPoint:tmpPoint];
[myPath addLineToPoint:tmpPoint];         
[myPath setLineCapStyle:kCGLineCapRound];
[myPath setLineJoinStyle:kCGLineJoinRound];

myShapeLayer.path=[myPath CGPath];
myShapeLayer.strokeColor = [[UIColor yellowColor] CGColor];
myShapeLayer.fillColor = [[UIColor clearColor] CGColor];
myShapeLayer.lineWidth = 3.0;
以防万一-这是我使用的斜接代码,将值从0.0更改为100.0-所有这些都没有效果:

[myPath setLineCapStyle:kCGLineCapRound];
[myPath setLineJoinStyle:kCGLineJoinMiter];
[myPath setMiterLimit:1.0];

您应该在形状层而不是路径上设置
lineJoin

myShapeLayer.lineJoin = kCALineJoinRound;

混淆的原因是UIBezierPath能够绘制路径(通过调用路径上的
fill
stroke
)。路径上的线连接和线帽的配置仅影响此图形


但是,由于您正在使用CAShapeLayer绘制路径,因此线条连接和线条封口的配置都应该在形状层上完成。

请查看
miterLimit
geedubb-您可能错过了我上次的编辑-我尝试过,但似乎也不起作用。很好!但是,如果它没有效果,为什么它也可以设置在路径上呢?谢谢@wayneh bezier路径上的配置影响bezier路径如何绘制路径,形状层上的配置影响形状层如何绘制路径。您的意思是“在路径上影响路径,在层上影响笔划/填充”吗?