绘制正n边形

// 绘制正n变形

    CGFloat X = polygonView.frame.size.width  * 0.5;

    CGFloat Y = polygonView.frame.size.height * 0.5;

    UIBezierPath* bezierPath = [UIBezierPath bezierPath];

    bezierPath.lineCapStyle = kCGLineCapRound;

    bezierPath.lineJoinStyle = kCGLineCapRound;

    CGFloat angle = labs(360/n);

    [bezierPath moveToPoint: CGPointMake(X - X , Y)];

    for (int i = 0; i < n - 1; i ++) {

        CGFloat angle1 = angle *(i + 1);

        CGFloat X1 = X + (X * (cos(M_PI *angle1/180)))*(-1);

        CGFloat Y1 = Y + X * (sin(M_PI *angle1/180));

        [bezierPath addLineToPoint: CGPointMake(X1, Y1)];

    }

    [bezierPath addLineToPoint: CGPointMake(X - X , Y)];

    CAShapeLayer *layer = [CAShapeLayer layer];

    layer.path = [bezierPath CGPath];

    polygonView.backgroundColor = [UIColor redColor];

    polygonView.layer.mask = layer;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容