美文网首页
绘图强化篇

绘图强化篇

作者: 也许________ | 来源:发表于2017-02-26 23:18 被阅读14次

    本篇文章是对绘图技术的一些技术点进行总结

    <h6>1.设置线条颜色,宽度,样式</h6>

    <pre>
    // 上下文
    let ctx = UIGraphicsGetCurrentContext()
    ctx?.move(to: CGPoint(x: 50, y: 50))
    ctx?.addLine(to: CGPoint(x: 200, y: 200))
    // 设置线条颜色
    ctx?.setStrokeColor(UIColor.red.cgColor)
    // 设置线条宽度
    ctx?.setLineWidth(10)
    // 设置线条样式(圆头,切面)
    ctx?.setLineCap(.butt)
    ctx?.strokePath()
    </pre>

    <h6>2.绘制曲线
    曲线也是一条线,具有起点和终点,与绘制直线不同的是需要设置一个控制点来改变起点和终点的路径,control参数就是控制点
    </h6>

    <pre>
    // 上下文
    let ctx = UIGraphicsGetCurrentContext()
    // 初始化起点
    ctx?.move(to: CGPoint(x: 50, y: 50))
    // 设置终点以及控制点
    ctx?.setLineWidth(2)
    ctx?.addQuadCurve(to: CGPoint(x : 200, y: 50), control: CGPoint(x: 100, y: -45))
    // 绘图
    ctx?.strokePath()
    </pre>

    <h6>3.绘制弧形
    center:以这个点为圆心
    radius:半径
    startAngle:开始角度
    endAngle:结束角度
    clockwise:true逆时针 false顺时针
    </h6>

    <pre>
    let ctx = UIGraphicsGetCurrentContext()
    ctx?.addArc(center: CGPoint(x: 100, y: 100), radius: 50, startAngle: 0, endAngle: CGFloat(M_PI), clockwise: false)
    ctx?.strokePath()
    </pre>

    <h6>4.绘制圆角矩形</h6>

    <pre>
    let b1 = UIBezierPath(roundedRect: CGRect(x: 50, y: 50, width: 100, height: 100), cornerRadius: 5)
    b1.stroke()
    </pre>

    <h6>5.绘制扇形</h6>

    <pre>
    // 设置圆心
    let center = CGPoint(x: 100, y: 100)
    // 设置以center为圆心的弧形
    let b = UIBezierPath(arcCenter: center, radius: 50, startAngle: 0, endAngle: CGFloat(M_PI_2), clockwise: true)
    // 添加连接圆心的直线
    b.addLine(to: center)
    // 填充(fill方法默认会关闭连线,所以可以忽略 b.closePath())
    b.fill()
    </pre>

    相关文章

      网友评论

          本文标题:绘图强化篇

          本文链接:https://www.haomeiwen.com/subject/vxjawttx.html