在变量中存储弧

时间:2013-03-03 20:45:02

标签: ios quartz-graphics

我有几个弧(圆圈)我想存储在一个变量中。矩形可以像这样存储:

CGRect rect = CGRectMake(float x, float y, width, height);

它们是否有类似的方式来存储弧或路径所需的信息?

2 个答案:

答案 0 :(得分:2)

使用UIBezierPath。

来自文档:

  

路径可以定义简单的形状,例如矩形,椭圆形和弧形或   他们可以定义包含混合物的复杂多边形   直线和曲线线段。

例如,您可以通过执行以下操作绘制椭圆:

- (void)drawRect:(CGRect)rect
{
    UIBezierPath* path = [UIBezierPath bezierPathWithOvalInRect:rect];

    [path stroke];
}

答案 1 :(得分:1)

在大多数情况下,快/轻方式是创建一个代表弧的CGPath(另请参阅CGMutablePath)。然后,您可以将路径绘制为CGContext

或者,您可以打包传递给CGContextAddArc的参数。例如:

@interface MONArc : NSObject

@interface (nonatomic, assign, readwrite) CGFloat x;
@interface (nonatomic, assign, readwrite) CGFloat y;
@interface (nonatomic, assign, readwrite) CGFloat radius;
@interface (nonatomic, assign, readwrite) CGFloat startAngle;
@interface (nonatomic, assign, readwrite) CGFloat endAngle;
@interface (nonatomic, assign, readwrite) int clockwise;

@end

然后在NSArray中保存一些,并在渲染时按顺序应用它们。