1

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

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

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

4

2 回答 2

2

使用 UIBezierPath。

从文档中:

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

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

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

    [path stroke];
}
于 2013-03-03T20:52:15.497 回答
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,并在渲染时按顺序应用它们。

于 2013-06-01T21:13:38.640 回答