我有几个弧线(圆圈),我想将它们存储在一个变量中。一个矩形可以这样存储:
CGRect rect = CGRectMake(float x, float y, width, height);
它们是否以类似的方式存储弧或路径所需的信息?
我有几个弧线(圆圈),我想将它们存储在一个变量中。一个矩形可以这样存储:
CGRect rect = CGRectMake(float x, float y, width, height);
它们是否以类似的方式存储弧或路径所需的信息?
使用 UIBezierPath。
从文档中:
路径可以定义简单的形状,例如矩形、椭圆形和圆弧,也可以定义包含直线段和曲线段混合的复杂多边形。
例如,您可以通过执行以下操作绘制一个椭圆:
- (void)drawRect:(CGRect)rect
{
UIBezierPath* path = [UIBezierPath bezierPathWithOvalInRect:rect];
[path stroke];
}
在大多数情况下,快速/轻松的方式是创建一个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
,并在渲染时按顺序应用它们。