読者です 読者をやめる 読者になる 読者になる

ふるすたっくえんじにあっぽい人の日記

ASP .NET MVC (C#)、.NET Framework、iOS (Objective-c) アプリ、Androidアプリ (Java)、AWS、たまにLAMPとかプロジェクトマネジメントあたりのお話

【iOS】正多角形を描く - UIBezierPathバージョン

ご無沙汰しております。
やること死ぬほどあんねん。
実装するひまなーい。

久々にiOS触ったから晒す。
UIBezierPathで正多角形。
もうちょい改良するけど。
もう寝よ。

- (void)drawRect:(CGRect)rect
{
    [super drawRect:rect];
    
    // 正三角形
    [self drawRegularPolygon:3 radius:100 center:CGPointMake(160, 160)];

    // 正四角形
    [self drawRegularPolygon:4 radius:100 center:CGPointMake(160, 160)];

    // 正五角形
    [self drawRegularPolygon:5 radius:100 center:CGPointMake(160, 160)];

    // 正180角形
    [self drawRegularPolygon:180 radius:100 center:CGPointMake(160, 160)];    
}

- (void)drawRegularPolygon:(NSUInteger)p radius:(CGFloat)radius center:(CGPoint)center
{
    UIBezierPath *aPath = [UIBezierPath bezierPath];
    aPath.lineWidth = 1;
    for (NSUInteger i = 0; i < p; i++) {
        double rad = M_PI * 2 / p * i;
        CGPoint drawPoint = CGPointMake(center.x + radius * cos(rad), center.y + radius * sin(rad));
        if (i == 0)
            [aPath moveToPoint:drawPoint];
        else
            [aPath addLineToPoint:drawPoint];
    }
    [aPath closePath];
    [[UIColor redColor] setStroke];
    [aPath stroke];
}

こうなる。
f:id:devdevdev:20141007044203p:plain