框架:CoreGraphics

步骤:

1、“获取”图形上下文     let cxtRef = UIGraphicsGetCurrentContext()!

2、添加路径

3、渲染

--- cxtRef.strokePath()  :描边,只画线条

--- cxtRef.fillPath() :填充,负责里面的内容,不管边线

注意:cxtRef.closePath()  ---  关闭路径 -> 将路径的终点向起点连线

-----------------------------------------------------------------------------------------------------------------------------------------

直线:

     private func zhiXian(){
// 1、“获取”图形上下文对象
let cxtRef = UIGraphicsGetCurrentContext()! // 2、添加直线路径
cxtRef.move(to: CGPoint(x: , y: ))
cxtRef.addLine(to: CGPoint(x: , y: )) // 3、描边渲染
cxtRef.strokePath()
}

三角形:

 private func sanJiaoXing(){
// 1、“获取”图形上下文对象
let cxtRef = UIGraphicsGetCurrentContext()! // 2、添加三角形路径
let point1 = CGPoint(x: , y: )
let point2 = CGPoint(x: , y: )
let point3 = CGPoint(x: , y: ) // cxtRef.addLines(between: [point1,point2,point3])
cxtRef.move(to: point1)
cxtRef.addLine(to: point2)
cxtRef.addLine(to: point3) // 3、关闭路径 -> 将路径的终点向起点连线
cxtRef.closePath() // 4、渲染
// stroke - 描边,只画线条
// cxtRef.strokePath() // fill - 填充,负责里面的内容,不管边线
cxtRef.fillPath()
}

矩形:

     private func juXing(rect:CGRect){
// 1、获取图形上下文对象
let cxtRef = UIGraphicsGetCurrentContext()! // 2、添加矩形路径
cxtRef.addRect(CGRect(x: , y: , width: , height: )) // 3、描边渲染
cxtRef.strokePath()
}

椭圆形:

     private func tuoYuanXing(){
// 1、获取图形上下文对象
let cxtRef = UIGraphicsGetCurrentContext()! // 2、添加椭圆形路径 - 内切圆
cxtRef.addEllipse(in: CGRect(x: , y: , width: , height: )) // 3、描边渲染
cxtRef.strokePath()
}

弧形:

     private func huXing(){
// 1、获取图形上下文对象
let cxtRef = UIGraphicsGetCurrentContext()! // 2、添加弧形路径
// clockwise: true - 逆时针;false - 顺时针
cxtRef.addArc(center: CGPoint(x:,y:), radius: , startAngle: , endAngle: CGFloat(M_PI_4), clockwise: false) // 3、描边渲染
cxtRef.strokePath()
}




CoreGraphics-基本图形绘制-直线、三角形、矩形、椭圆形、弧形的更多相关文章

  1. 【Qt开发】Qt在QLabel(QWidget)鼠标绘制直线和矩形框

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://devbean.blog.51cto.com/448512/243546 说实话, ...

  2. ☀【canvas】直线 / 三角形 / 矩形 / 曲线 / 控制点 / 变换

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...

  3. OpenCV绘制直线,矩形和园

    首先导入我们所需要的库: import numpy as np import cv2 import matplotlib.pyplot as plt 自定义显示图像的函数: def show(imag ...

  4. Java基础之在窗口中绘图——绘制直线和矩形(Sketcher 2 drawing lines and rectangles)

    控制台程序. import javax.swing.JComponent; import java.util.*; import java.awt.*; import java.awt.geom.*; ...

  5. (转载)C# GDI+ 画简单的图形:直线、矩形、扇形等

    GDI+是一种绘图装置接口, 当拖动窗体是,窗体发生移动,window默认为从窗体移动到另一个地方,先发生擦除后再重新画一个窗体: 而我们自己动手画的图(如下面的线),不会重新画:在属性中,Paint ...

  6. iOS:quartz2D绘图(画一些简单的图形,如直线、三角形、圆、矩形、文字等)

    前一篇几乎已经详细介绍了Quartz2D的所有知识,这一篇以及后面就不废话了,主要是用具体的实例来演示绘图效果. 这里我们先来绘制一些简单的图形(如直线.三角形.圆.矩形.文字.图像),它有两种方式可 ...

  7. 使用原生JavaScript的Canvas实现拖拽式图形绘制,支持画笔、线条、箭头、三角形、矩形、平行四边形、梯形以及多边形和圆形,不依赖任何库和插件,有演示demo

    前言 需要用到图形绘制,没有找到完整的图形绘制实现,所以自己实现了一个 - - 一.实现的功能 1.基于oop思想构建,支持坐标点.线条(由坐标点组成,包含方向).多边形(由多个坐标点组成).圆形(包 ...

  8. OpenCV——基本图形绘制(椭圆、圆、多边形、直线、矩形)

    //绘制椭圆 void DrawEllipse(Mat img, double angle) { ; ; ellipse(img, Point(WINDOW_WIDTH / , WINDOW_WIDT ...

  9. IOS开发 图形绘制,绘制线条,矩形,和垂直和居中绘制文字

    概述 吐槽下IOS下 的图形绘图,代码冗长,不得不自己重新封装方法.整理形成本文. 绘制线 // 绘制直线 + (void)toDrawLineFromX:(CGFloat)x1 Y:(CGFloat ...

随机推荐

  1. JAVA基础代码分享--学生成绩管理

    问题描述: 从键盘读入学生成绩,找出最高分,并输出学生成绩等级. 成绩>=最高分-10  等级为’A’   成绩>=最高分-20  等级为’B’ 成绩>=最高分-30  等级为’C’ ...

  2. hdu 2222 Keywords Search(AC自动机)

    /* 啥也不说了,直接套模板... */ 1 #include<iostream> #include<map> #include<string> #include& ...

  3. Easyui 让Window弹出居中与最大化后居中

    easyui1.3.2版本,window的弹出不会居中了.而dialog是会居中的,我们必须为为window的open事件做扩展 代码如下:只要加入以下代码即可.如果你是看了MVC项目系列的,把他放到 ...

  4. iOS开发之WebView

    做iOS的应用也有一段时间了,在之前的demo中一直没有机会用到WebView,今天就查缺补漏一下,使用一下WebView.最早接触WebView是在Android中接触的,iOS中的WebView的 ...

  5. 搭建SSH详细步骤及相关说明

    因为手里已有相关jar,为方便我搭建的是:Struts2.0+Hibernate3.3+Spring3.0,数据库:MySQL 如果想搭建最新的,在官网上下载最新jar即可. 这里会对比MyEclip ...

  6. 1Z0-053 争议题目解析692

    1Z0-053 争议题目解析692 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 692.Your company wants to upgrade the production ...

  7. JavaScript(Node.js)+ Selenium自动化测试

    Selenium is a browser automation library. Most often used for testing web-applications, Selenium may ...

  8. java多线程--定时器Timer的使用

    定时的功能我们在手机上见得比较多,比如定时清理垃圾,闹钟,等等.定时功能在java中主要使用的就是Timer对象,他在内部使用的就是多线程的技术. Time类主要负责完成定时计划任务的功能,就是在指定 ...

  9. Josephus环问题

    约瑟夫环问题 问题描述: Josephus问题可以描述为如下的一个游戏:N个人编号从1到N,围坐成一个圆圈,从1号开始传递一个热土豆,经过M次传递后拿着土豆的人离开圈子,由坐在离开的人的后面的人拿起热 ...

  10. Mongo查询

    这里主要是讲MongoDB在控制台中如何进行高级查询. 还有一句想提醒大家,多动手实验,才是硬道理. <,>,>=,<= 这四个就不用解释了,最常用的,也是最简单的. db.c ...