変数に格納したい円弧 (円) がいくつかあります。四角形は次のように格納できます。
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
レンダリング時に順番に適用します。