如何在Objective-C中绘制四分之一圆

时间:2012-08-31 07:49:43

标签: iphone objective-c

  

可能重复:
  Circle to Circle Segment Collision

我是iOS开发的初学者。你知道如何使用CoreGraphic绘制这样的http://www.hoodshomecenters.com/product_images/v/723/QuarterRound__65714_zoom.jpg图像吗?

3 个答案:

答案 0 :(得分:12)

这是绘制弧形部分的代码。绘制完成后,就可以在其中绘制线条。

#include <math.h>

CGFloat radius = 100;

CGFloat starttime = M_PI/6; //1 pm = 1/6 rad
CGFloat endtime = M_PI;  //6 pm = 1 rad

//draw arc
CGPoint center = CGPointMake(radius,radius);
UIBezierPath *arc = [UIBezierPath bezierPath]; //empty path
[arc moveToPoint:center];
CGPoint next;
next.x = center.x + radius * cos(starttime);
next.y = center.y + radius * sin(starttime);
[arc addLineToPoint:next]; //go one end of arc
[arc addArcWithCenter:center radius:radius startAngle:starttime endAngle:endtime clockwise:YES]; //add the arc
[arc addLineToPoint:center]; //back to center

[[UIColor yellowColor] set];
[arc fill];

您需要覆盖用于显示此绘图的视图的drawRect方法。

答案 1 :(得分:2)

您可以使用方法UIBezierPath使用bezierPathWithArcCenter:radius:startAngle:endAngle:clockwise类绘制弧段。看看here

您还需要使用CGContextMoveToPoint/ CGContextAddLineToPoint

的组合为线条创建路径

最后,通过在路径上调用stroke方法来划线。

修改 要绘制内部线,您可能想要剪切它们:这是使用CGContextClip函数

完成的

答案 2 :(得分:0)

你当然可以使用

void CGContextAddArcToPoint

文档:

CGContext reference