CoreGraphics-基本图形绘制-直线、三角形、矩形、椭圆形、弧形
框架: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-基本图形绘制-直线、三角形、矩形、椭圆形、弧形的更多相关文章
- 【Qt开发】Qt在QLabel(QWidget)鼠标绘制直线和矩形框
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://devbean.blog.51cto.com/448512/243546 说实话, ...
- ☀【canvas】直线 / 三角形 / 矩形 / 曲线 / 控制点 / 变换
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...
- OpenCV绘制直线,矩形和园
首先导入我们所需要的库: import numpy as np import cv2 import matplotlib.pyplot as plt 自定义显示图像的函数: def show(imag ...
- Java基础之在窗口中绘图——绘制直线和矩形(Sketcher 2 drawing lines and rectangles)
控制台程序. import javax.swing.JComponent; import java.util.*; import java.awt.*; import java.awt.geom.*; ...
- (转载)C# GDI+ 画简单的图形:直线、矩形、扇形等
GDI+是一种绘图装置接口, 当拖动窗体是,窗体发生移动,window默认为从窗体移动到另一个地方,先发生擦除后再重新画一个窗体: 而我们自己动手画的图(如下面的线),不会重新画:在属性中,Paint ...
- iOS:quartz2D绘图(画一些简单的图形,如直线、三角形、圆、矩形、文字等)
前一篇几乎已经详细介绍了Quartz2D的所有知识,这一篇以及后面就不废话了,主要是用具体的实例来演示绘图效果. 这里我们先来绘制一些简单的图形(如直线.三角形.圆.矩形.文字.图像),它有两种方式可 ...
- 使用原生JavaScript的Canvas实现拖拽式图形绘制,支持画笔、线条、箭头、三角形、矩形、平行四边形、梯形以及多边形和圆形,不依赖任何库和插件,有演示demo
前言 需要用到图形绘制,没有找到完整的图形绘制实现,所以自己实现了一个 - - 一.实现的功能 1.基于oop思想构建,支持坐标点.线条(由坐标点组成,包含方向).多边形(由多个坐标点组成).圆形(包 ...
- OpenCV——基本图形绘制(椭圆、圆、多边形、直线、矩形)
//绘制椭圆 void DrawEllipse(Mat img, double angle) { ; ; ellipse(img, Point(WINDOW_WIDTH / , WINDOW_WIDT ...
- IOS开发 图形绘制,绘制线条,矩形,和垂直和居中绘制文字
概述 吐槽下IOS下 的图形绘图,代码冗长,不得不自己重新封装方法.整理形成本文. 绘制线 // 绘制直线 + (void)toDrawLineFromX:(CGFloat)x1 Y:(CGFloat ...
随机推荐
- 10年C#历程的MVP之路与MVP项目介绍
本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 1.意外的惊喜 10月份收到微软总部寄来的荣誉证书,非常激动, ...
- MySQL学习笔记二:权限管理
1. 创建和删除用户,mysql中的用户是由用户名和主机名来确定的 create user "user_name@host_name" identified by passwd; ...
- 关于table的一些记录
HTML有10个表格相关标签 <caption> 表格的大标题,该标记可以出现在<table> 之间的任意位置.它对于搜索引擎的机器人记录信息十分重要.参数有align.val ...
- Android APK如何签名
Android项目以它的包名作为唯一标识,如果在同一设备上安装两个相同的应用,后面安装的应用就会覆盖前面安装的应用.为了避免这种情况的发生,我们需要对作为产品发布的应用进行签名. 签名其实有两个作用: ...
- Ubuntu下搭建ryu环境
RYU环境搭建总共四步: step1:首先下载相应的python套件,并且更新pip $ sudo apt-get install python-pip python-dev build-essent ...
- mybatis入门基础(六)----高级映射(一对一,一对多,多对多)
一:订单商品数据模型 1.数据库执行脚本 创建数据库表代码: CREATE TABLE items ( id INT NOT NULL AUTO_INCREMENT, itemsname ) NOT ...
- jQuery-1.9.1源码分析系列(六) 延时对象应用——jQuery.ready
还记不记得jQuery初始化函数jQuery.fn.init中有这样是一个分支 //document ready简便写法$(function(){…}) } else if ( jQuery.isFu ...
- 实体生命周期【Entity Lifecycle】(EF基础系列10)
Before we work on CRUD operation (Create, Read, Update, Delete), it's important to understand the en ...
- Effective java笔记(七),通用程序设计
45.将局部变量的作用域最小化 将局部变量的作用域最小化,可以增强代码的可读性和可维护性,并降低出错的可能性. Java允许在任何可以出现语句的地方声明变量(C语言中局部变量要在代码块开头声明),要使 ...
- 关系数据库SQL之高级数据查询:去重复、组合查询、连接查询、虚拟表
前言 接上一篇关系数据库SQL之基本数据查询:子查询.分组查询.模糊查询,主要是关系型数据库基本数据查询.包括子查询.分组查询.聚合函数查询.模糊查询,本文是介绍一下关系型数据库几种高级数据查询SQL ...