框架: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. WPF MVVM框架下,VM界面写控件

    MVVM正常就是在View页面写样式,ViewModel页面写逻辑,但是有的时候纯在View页面写样式并不能满足需求.我最近的这个项目就遇到了,因此只能在VM页面去写样式控件,然后绑定到View页面. ...

  2. CSS3 Media Queries实现响应式布局

    概念我就不在这里写啦.大家可以看看以下网页: http://www.runoob.com/cssref/css3-pr-mediaquery.html http://www.w3cplus.com/c ...

  3. 引用类型-Array类型

    ECMAScript数组的每一项可以保存任何类型的数据,并且数组的大小是可以动态调整的. 创建数组的基本方式有两种,第一种是使用Array构造函数 var colors = new Array(); ...

  4. 用CSS3动画,让页面动起来

    以前就听说过有个库,叫animate.css,但是自己并没有在实际项目中使用过,这次正好要做个招聘页面,得以利用一下这个库,在经常会卡顿的UC浏览器中也能流畅执行. 扫描下面的二维码,可以看到在线的d ...

  5. Cesium原理篇:6 Renderer模块(1: Buffer)

    刚刚结束完地球切片的渲染调度后,打算介绍一下目前大家都很关注的3D Tiles方面的内容,但发现要讲3D Tiles,或者充分理解它,需要对DataSource,Primitive要有基础,而这要求对 ...

  6. 【Android】《App研发录》总结

    说明 看这本书的时候,总感觉怪怪的. 因为在地铁上看完的,作者书中基本都是他自己工作中遇到的问题和坑,虽说这样会让人感觉找到了解决方案,可以再进行深入的研究,可是某些地方介绍的有点片面,仅仅是引用部分 ...

  7. C++中的std详解

    以下内容为:本人看C++视频教程-范磊主讲(2.91G)视频学习笔记. 与大家分享下,希望可以帮助大家学习c++! 引例: #include<iostream> int main() { ...

  8. springmvc原理

    今天面试碰到一个特别恶心的公司面试官.是一个金融公司,过去后告诉我2点上班,带我去见经理.经理找人面试,看起来没有hr,经理直接看简历招人.经理上来就问我是xxx大学的,我说是,然后等面试官.面试官来 ...

  9. 8.3 使用Fluent API进行属性映射【Code-First系列】

    现在,我打算学习,怎么用Fluent API来配置领域类中的属性. using System; using System.Collections.Generic; using System.Linq; ...

  10. [Asp.net 5] Logging-其他日志系统的实现

    Microsoft.Framework.Logging.NLog 使用Nlog扩展日志系统:按照我们上节说的,对于扩展的日志系统都要实现俩个接口ILogger.ILoggerProvider.所以在当 ...