iPhone如何夹新月形图案

问题描述:

在堆栈溢出的帮助下,我逐渐熟悉iPhone中的石英绘图。我想使代码片断月牙图案,这是我到目前为止,但它并不完全工作,我期望:iPhone如何夹新月形图案

contextRef = UIGraphicsGetCurrentContext(); 
CGContextSaveGState(contextRef); 
onlyDrawTopHalf = YES; 
halfMultiplier = onlyDrawTopHalf ? -1.0 : 1.0; 
ellipse = CGRectMake(50, 50, 128, 128); 
clipRect = CGRectOffset(ellipse, halfMultiplier * ellipse.size.width/2, 0); 
CGContextClipToRect(contextRef, clipRect); 
CGContextRestoreGState(contextRef); 


onlyDrawTopHalf = YES; 
halfMultiplier = onlyDrawTopHalf ? -1.0 : 1.0; 
ellipse = CGRectMake(50, 50, 100, 128); 
clipRect = CGRectOffset(ellipse, halfMultiplier * ellipse.size.width/2, 0); 
CGContextAddEllipseInRect(contextRef, clipRect); 
CGContextEOClip(contextRef); 
CGContextFillEllipseInRect(contextRef, ellipse); 

准确地说,代码的第一款绘制圆(这工作),第二应该从中删除椭圆,但这不能按预期工作。

+0

尝试在绘制圆之前先设置剪裁。 – Ben

两种形状都需要是完美的圆形而不是椭圆形。第二个圆的半径应该稍小一点,它应该是一个小小的位移到右边(或左边)以获得完美的新月效果。

+0

它们具有相同的起始点(50,50),但半径不同(100,128)和(128,128)。 – MegaManX

+0

然后,您应该滑动一点点起点。并使用完美的圆形而不是椭圆。 (100,100)而不是(128,128)。 –

+0

我编辑了我的评论。 –