swift - 画图 - 画矩形,虚线,圆和半圆

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift - 画图 - 画矩形,虚线,圆和半圆相关的知识,希望对你有一定的参考价值。

参考技术A import UIKit

class JYJYBouncedCouponsViewCellBgView: UIView

    //一定要在这里设置 背景色, 不要再draw里面设置, 

    override init(frame: CGRect)

        super.init(frame: frame)

        self.backgroundColor = UIColor.clear

    

    required init?(coder aDecoder: NSCoder)

        fatalError("init(coder:) has not been implemented")

    

    override func draw(_ rect: CGRect)

        // 获取上下文

        guard let context = UIGraphicsGetCurrentContext() else 

            return

        

        //画一个矩形, 带圆角的,填充色为FFE4C3,切圆角5

        UIColor.init(hexColor: "FFE4C3").set()

        context.addPath(UIBezierPath(roundedRect: rect, cornerRadius: 5).cgPath)

        context.fillPath()

        //填充色setFillColor , 画线的颜色setStrokeColor

//        context.setFillColor(UIColor.init(hexColor: "FFE4C3").cgColor)

        // 画虚线

        /**设置起始和结束位置**/

        let startPointX: CGFloat = rect.size.width - 97

        let staerPointY: CGFloat = 0

        let endPointX: CGFloat = rect.size.width - 97

        let endPointY: CGFloat =  rect.size.height

        let path = CGMutablePath()

        path.move(to: CGPoint(x: startPointX, y: staerPointY))

        path.addLine(to: CGPoint(x: endPointX, y: endPointY))

        context.addPath(path)

        context.setStrokeColor(UIColor.init(hexColor: "FF8E00").cgColor)

        context.setLineWidth(1)

        /*

         phase参数表示在第一个虚线绘制的时候跳过多少个点

         lengths的值{10,10}表示先绘制10个点,再跳过10个点,如此反复

         如果把lengths值改为{10, 20, 10},则表示先绘制10个点,跳过20个点,绘制10个点,跳过10个点,再绘制20个点,如此反复

         */

        context.setLineDash(phase: 0, lengths: [5,5])

        context.strokePath()

        // 画半圆

        UIColor.clear.set()

        /***设置圆心位置***/

        let circleY: CGFloat =  0

        let topCirclePoint: CGPoint = CGPoint(x: rect.size.width - 97, y: circleY)

        let bottomCenterPoint: CGPoint = CGPoint(x: rect.size.width - 97, y: rect.size.height)

        let topCircle = UIBezierPath(arcCenter: topCirclePoint, radius: 5, startAngle: -CGFloat.pi, endAngle: CGFloat.pi, clockwise: true)

        let bottpmCircle = UIBezierPath(arcCenter: bottomCenterPoint, radius: 5, startAngle: -CGFloat.pi, endAngle: CGFloat.pi, clockwise: true)

        context.setBlendMode(.clear)

        context.addPath(topCircle.cgPath)

        context.addPath(bottpmCircle.cgPath)

        context.fillPath()

    

画三视图时啥时候应画实线,啥时候画虚线?

参考技术A

画三视图时候,看得见的轮廓线的投影画实线,看不见的轮廓线的投影画虚线。

三视图的线条画法:

根据各形体的投影规律,逐个画出形体的三视图。画形体的顺序:一般先实(实形体)后空(挖去的形体);先大(大形体)后小(小形体);先画轮廓,后画细节。画每个形体时,要三个视图联系起来画,并从反映形体特征的视图画起,再按投影规律画出其他两个视图。

对称图形、半圆和大于半圆的圆弧要画出对称中心线,回转体一定要画出轴线。对称中心线和轴线用细点划线画出。底稿画完后,按形体逐个仔细检查。

扩展资料

三视图位置关系

主视图在图纸的左上方左视图在主视图的右方俯视图在主视图的下方主视图与俯视图长应对正(简称长对正)主视图与左视图高度保持平齐(简称高平齐)左视图与俯视图宽度应相等(简称宽相等)若不按上述顺序放置,则应注明三个视图名称 

尺寸关系

首先明确一下,物体的三视图和物体上、下、左、右、前、后六个方位的对应关系。主视图的轮廓线表示上、下、左、右、四个方位;左视图的轮廓线表示上、下、前、后四个方位;俯视图的轮廓线表示前、后、左、右四个方位。规定左右为长,上下为高,前后为宽。

参考资料来源:百度百科-三视图

以上是关于swift - 画图 - 画矩形,虚线,圆和半圆的主要内容,如果未能解决你的问题,请参考以下文章

如何使用shape来画半圆和画虚线

实现一个简单的android开关

画三视图时啥时候应画实线,啥时候画虚线?

android 画虚线实线,画圆角矩形,一半圆角

怎样在matlab中画矩形并填充颜色?

matlab中rectangle画虚线框