iPhone如何剪裁新月形图案

时间:2011-12-12 14:06:00

标签: iphone quartz-graphics draw ellipse clip

在堆栈溢出的帮助下,我熟悉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);

准确地说,第一段代码绘制圆圈(这是有效的),第二段应该从中剪切椭圆,但这不符合预期。

1 个答案:

答案 0 :(得分:0)

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