iOS-Quartz2D绘图的基础用法总结

【绘图案例-介绍quartz2d Objective-C语言】 阅读详情
在UIView的drawRect:方法中具体使用Quartz2D
1获取当前上下文
CGContextRef ctx = UIGraphicsGetCurrentContext(); 
2拼接图形(界面)
起点
CGContextMoveToPoint(ctx, 10, 10);
线段-从起点到终点
CGContextAddLineToPoint(ctx, 100, 100);
3 渲染
CGContextStrokePath(ctx); -stroke空心 -fill实心
⚠三角形:画两条线之后CGContextClosePath(ctx);关闭路径,连接终点和起点。
⚠四边形:CGContextAddRect(ctx, CGRectMake(x, y, w, h));
⚠线粗细:CGContextSetLineWidth(ctx, 10);
⚠笔颜色:CGContextSetRGBStrokeColor(ctx, r, g, b, a); -stroke空心 -fill实心
[[UIColor whiteColor] set]通用颜色 -setStroke空心色 -setFill实心颜色
⚠线头尾:CGContextSetLineCap(ctx, enum);
⚠转折点:CGContextSetLineJoin(ctx, enum);
⚠画椭圆:CGContextAddEllipseInRect(ctx, CGRect); -指定一个矩形就可以确定一个椭圆
⚠画圆形:把椭圆的CGRect给成正方形即可
⚠画圆弧:CGContextAddArc(ctx, x, y, r, sa, ea, cw); -x,y圆心 -r半径 -sa,ea开始/结束角度
-cw顺/逆时针,0顺1逆 -水平向右的方向是0度 -这方法也可以画圆
⚠画文字:NSString drawAtPoint/drawInRect withAttributtes:方法不用自己获取上下文
NSForegroundColorAttributeName/NSFontAttributeName
⚠画图片:UIImage drawAtPoint/drawInRect 方法类似与画文字 -drawINnRect会拉伸
drawAsPatternInRect方法 -在给定区域平铺,可以画花纹
⚠画曲线:CGContextAddQuadCurveToPoint(ctx, cx, cy, ex, ey)贝塞尔曲线

图形上下文栈
1保存状态:CGContextSaveGState(ctx);方法保存当前上下文状态
2恢复状态:CGContextRestoreGState(ctx);方法恢复之前保存的上下文状态
3保存相当于入栈,恢复相当于出栈。恢复到最近保存的状态。

矩阵操作
1CGContextScaleCTM(ctx, 0.5, 0.5);方法 -整体缩放
2CGContextRotateCTM(ctx, M_PI_4);方法 -整体旋转
3CGContextTranslateCTM(ctx, 0, 150);方法 -整体平移

裁减图片
1入栈初始上下文
2在上下文中生成一个形状用来当作裁减后的可见区域
3裁减:CGContextClip(ctx);
4把要裁减的图片放在要裁减的轮廓上面
5把上下文出栈,恢复到裁减以前

重绘-刷帧
1setNeedsDisplay方法,内部会清空绘制内容,重新调用drawRect方法
2setNeedsDisplayInRect方法,部分刷新,只刷新给出Rect区域

iOS 2D绘图详解(Quartz 2D)之Bitmap 原创Blog,转载请注明出处 http://blog.youkuaiyun.com/hello_hwc?viewmode=list 我的stackoverflow前五篇基础博客路径 iOS 2D绘图详解(Quartz 2D)之概述 iOS 2D绘图详解(Quartz 2D)之路径(点,直线,虚线,曲线,圆弧,椭圆,矩形) iOS 2D绘图详解(Quartz 2D)之路径(stroke,fill,clip 阅读详情

相关推荐

iOS 2D绘图详解(Quartz 2D)之阴影和渐变(Shadow,Gradient)

原创Blog,转载请注明出处 http://blog.youkuaiyun.com/hello_hwc?viewmode=list 我的stackoverflow前四篇基础博客路径 iOS 2D绘图详解(Quartz 2D)之概述 iOS 2D绘图详解(Quartz 2D)之路径(点,直线,虚线,曲线,圆弧,椭圆,矩形) iOS 2D绘图详解(Quartz 2D)之路径(stroke,fill,clip

Leo的专栏 5991

iOS 绘图机制简介,Quartz 2D绘图用CGContextRef绘制音频波形图 —— HERO博客

iOS绘图机制简介,Quartz 2D绘图用CGContextRef绘制音频波形图。

hero_wqb的博客 4812

深入理解Quartz 2D图形上下文栈:iOS绘图实战Demo

/ 🔹 开启一个离屏位图上下文if (!ctx) {NSLog(@"⚠️ 绘图失败:无法获取上下文");return nil;// 🔹 开始绘制逻辑// 保护原始状态// 1️⃣ 设置圆形裁剪路径// 2️⃣ 绘制头像(自动适应裁剪)// 3️⃣ 绘制金色描边(恢复完整画布后画在外圈)// 4️⃣ 添加等级角标(独立变换)// 🔹 提取结果并关闭上下文// 必须!必须!必须!📌 几个关键点提醒:第二个参数设为NO表示支持透明通道;

weixin_42298164的博客 738

iOS Quart2D绘图之UIGraphicsGetCurrentContext基础

某天,你正在上班ing……这个时候老大过来了,“小王啊,这个按钮太丑了,客户要求变成五角星形状的,UI没空给你切图,你给我完成这个需求啊”,说完便头也不回的走了,留下你一个人在冷风中摇曳,心里一万只草泥马在狂奔…… 1.png OK OK ,自己选的IOS开发,哭着也要完成…… 这里你可能就需要使用绘图这一块的知识了。如果你恰好这块还是比较空白的,那么就是。。。

越越博客 2599

Oracle 11g RAC 节点通信故障排查与修复指南

本文详细介绍了Oracle 11g RAC集群发生节点通信故障时的系统性排查与修复方法。当出现节点异常重启时,核心问题往往源于心跳网络中断。文章提供了从快速诊断、日志分析到六层深度检查的完整指南,并给出了针对网络配置、内核参数及Oracle已知Bug等常见根因的实战解决方案,帮助DBA快速恢复集群稳定。

weixin_29246195的博客 271

从单应矩阵到实际距离:Apriltag测距完整实现指南

本文提供了基于Apriltag实现高精度视觉测距与姿态估计的完整指南。详细阐述了从相机标定、单应矩阵分解到欧拉角与距离计算的完整流程,并深入探讨了四个解的歧义选择、工程实践中的滤波优化与多Tag融合等关键问题,旨在帮助开发者在机器人、AR等应用中实现稳定可靠的距离检测与姿态估计。

n7o8p的博客 558

iOS 2D绘图详解(Quartz 2D)之路径(点,直线,虚线,曲线,圆弧,椭圆,矩形)

原创Blog,转载请注明出处 http://blog.youkuaiyun.com/hello_hwc?viewmode=list 我的stackoverflow前言:一个路径可以包含由一个或者多个shape以及子路径subpath,quartz提供了很多方便的shape可以直接调用。例如:point,line,Arc(圆弧),Curves(曲线),Ellipse(椭圆),矩形(Rectangle).对

Leo的专栏 5449

IC面试常考题 Verilog三分频电路设计(占空比50%,三分之一,三分之二)

实现三分频电路最简单的是: 利用计数器实现。 时序图分析(本人比较懒,平常科研忙,所以直接手画时序图了,懒得用软件画了): 直接上图分析:利用计数器每隔三个周期信号翻转一次,同时在不同的计数下翻转得到的同步信号 clk_1和clk_2,再利用异或即可实现出一个不同占空比的三分频信号(同样的方法也可扩展到其他奇数分频设计中)。 例如占空比50%: module Div_three( input clk, input rst_n, output div_three ); reg

qq_41884662的博客 1万+

Quartz 2D绘图简介

Quartz 2D绘图 简介 Quartz 2D是2D绘图引擎,适用iOS和Mac OS X程序。它提供底层轻量级的接口,并且会根据输出显示设备提供不匹配的逼真的画面  。Quartz 2D是与分辨率和设备无关的一个引擎。你不需要关注最终成像目标位置如何。非常容易使用,提供大量强大的功能,例如透明度,画线,视角距离效果渲染,颜色管理,反锯齿渲染,PDF文档创建,显示,解析。Quartz

ffblog的专栏 848

从零到一:3D Slicer与MONAI在医学影像中的AI革命

本文探讨了3D Slicer与MONAI在医学影像分析中的革命性应用,展示了如何通过开源工具实现高效的三维影像处理和AI增强分析。结合临床案例,详细介绍了从数据准备到AI分析的全流程,显著提升诊断效率和精度,推动医学影像技术迈向新纪元。

tcp8optimizer的博客 340

FastApi教程

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网(WWW:World Wide Web )服务器与本地浏览器之间传输超文本的传送协议。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。

小石潭记丶 1560

ios基础篇(五)—— Quartz2D

一、Quartz2D Quartz 2D是一个二维绘图引擎,同时支持iOS和Mac OS X系统(跨平台,纯 C 语言的)。包含在 Core Graphics 框架中。 Quartz 2D能完成的工作 绘制图形 : 线条\三角形\矩形\圆\弧等 绘制文字 微博图片上的水印 绘制\生成图片(图像) 读取\生成PDF 截图\裁剪图片 方型图片->圆型 四个角是透明的 自定义UI控件 注意: Quartz2D 是苹果官方的二维绘图引擎,同时支持 iOS 和 Mac OS X 系统。 Co

努力进阶的小菜鸟 829

极智AI | 谈谈为什么卷积加速更喜欢 NHWC Layout

本文主要讨论一下为什么卷积加速更加喜欢 NHWC 的数据排布。

极智视界 2970

iOS:quartz2D绘图

Quartz-2D:绘图 一、介绍: •Quartz2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境 •Quartz2DAPI可以实现许多功能,如基于路径的绘图、透明度、阴影、颜色管理、反锯齿、PDF文档生成和PDF元数据访问等 •Quartz2DAPI是Core Graphics框架的一部分,因此其中的很多数据类型和方法都是以CG开头的...

dienangpiao2051的博客 194

PCL点云DBSCAN聚类算法:基于密度的点云聚类

核心点是在给定半径内拥有足够多邻居点的点,边界点是在给定半径内没有足够多邻居点但是位于核心点的邻域内的点,噪声点是既不是核心点也不是边界点的点。本文将介绍PCL中的DBSCAN(基于密度的空间聚类应用噪声)算法,用于点云数据的聚类。上述示例代码首先从PCD文件中读取点云数据,并设置了DBSCAN聚类的参数,包括邻域搜索半径(epsilon)和邻域内最小点数(min_points)。需要注意的是,示例代码中的点云数据格式为pcl::PointXYZ,如果使用其他类型的点云数据,需要相应地修改代码。

LpmShell的博客 1237

10分钟极速SpringBoot项目搭建:OpenClaw AI实战攻略

OpenClaw,作为一款革命性的 AI 工具,凭借其强大的智能体能力,能够在短短 10 分钟内,帮助开发者从零构建一个完整的 SpringBoot 项目,实现真正的极速开发。它不仅极大地提高了开发效率,还降低了开发门槛,让更多的开发者能够专注于业务逻辑的实现,而无需被繁琐的配置工作所困扰

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 297

iOS - Quartz 2D 二维绘图


 1、Quartz 2D 简介 Quartz 2D 属于 Core Graphics(所以大多数相关方法的都是以 CG 开头),是 iOS/Mac OSX 提供的在内核之上的强大的 2D 绘图引擎,并且这个绘图引擎是设备无关的。也就是说,不用关心设备的大小,设备的分辨率,只要利用 Quartz 2D,这些设备相关的会自动处理。 1、Quartz 2D 在 iOS ...

rstbfveradsvc 377

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【IOS 开发学习总结-OC-64】Quartz 2D绘图(4-1)——Quartz 2D绘图基础+点线模式

【IOS 开发学习总结-OC-64】Quartz 2D绘图(上)——Quartz 2D绘图基础+点线模式Quartz 2D绘图的核心API是CGContextRef,该API专门用于绘制各种图形。Quartz 2D绘图基础:CGContextRef使用Quartz 2D绘图的关键步骤有两步: 1. 获取CGContextRef; 2. 调用CGContextRef的方法进行绘图。不同场景下获取C

Albert的专栏 1405

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

iOS Quartz 2D绘图

无论使用哪种绘图技术,都离不开UIView,绘制都发生在UIView对象的区域内。如果是默认视图,绘制工作是由iOS系统自动处理的;如果是自定义视图,则必须重写drawRect:方法,在此提供相应的绘制代码。 1、drawRect:方法 想要绘图就要重写drawRect:方法。另外慧慧使用到setNeedsDisplay:和setNeedsDisplayInRect:方法。 两个方法用于设置视图或...

weixin_46642112的博客 303

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

iOS绘图教程--Quartz 2D(CoreGraphics.framework) 详解

iOS绘图教程 发布于:2014-01-15 11:15阅读数:13446 Core Graphics Framework是一套基于C的API框架,使用了Quartz作为绘图引擎。它提供了低级别、轻量级、高保真度的2D渲染。该框架可以用于基于路径的绘图、变换、颜色管理、脱屏渲染,模板、渐变、 “” 阅读器 iOSiOS开发iOS绘图 本文是《Programming iO

zhouleizhao的专栏 2990

关于Quartz 2D绘图

    近期由于所做的任务中涉及Quartz 2D绘图方面的比较多,对Quartz 2D进行了一次深入的研究。Quartz主要就是一些函数,对象来进行对视图在内存中进行绘制,在将视图加入到当前视图中。    首先:获得所在的上下文以便将绘制好的视图加入到现在视图中从而显示。CGContextRef  Context=UIGraphicsGetCurrentContext();   2.颜色:Iphone中基本的颜色为红色,蓝色,绿色,还有透明度也是必备的。他们都是CGFloat类型的,且每个值只能在0到1中

chen154556138的专栏 1228

iOS_Quartz 2D绘图

目 录: 一、基础知识掌握 二、Quartz 2D绘图基础:CGContextRef实现简单地绘制图形 三、CGContextRef实现文字、图片、基于路径的图形绘制 四、在内存中绘制位图 五、添加渐变效果 六、PDF文档   引言:Quartz 2D绘图的核心API是CGContextRef,该API专门用于绘制各种图形。Quartz 2D是一个二维图形绘制引擎,它支持iOS环境和Mac O...

Landen2011的博客 204

iOS 2D绘图 (Quartz 2D) 概述

本篇博客原文地址:http://blog.youkuaiyun.com/hello_hwc?viewmode=list 由于自己的项目需要,从网络上下载了许多关于绘制图形的demo,只是用在自己的项目中,很多地方的代码还是吃不透,于是决定仔细学习一下Quartz 2D这个强大的框架,这里也是站在别人的肩膀上来辅助自己的学习,感谢原博客的详细讲解。 Quartz 2D用来干嘛的? Quartz ...

ddiv24492的博客 114

Quartz 2D绘图

转载自:http://www.jianshu.com/p/5159c0fe01ab 1. Quartz概述 Quartz是Mac OS X的Darwin核心之上的绘图层,有时候也认为是CoreGraphics(制图)。 共有两种部分组成Quartz: Quartz Compositor,合成视窗系统,管理和合成幕后视窗影像来建立Mac OS X使用者接口。(了解

逢个场,作个戏 347

iOS之QuartZ 2D 绘图(一)

Quartz2D Quartz2D是苹果封装的一个库,针对iOS和os系统绘制不同的类型的制图方式 图形上下文(一种数据类型,类似int,double)数据类型(CGContextRef) 不同的上下文(数据类型)可以绘制不同的类型(pdf,bitmap,layer,window,ptinter) 进而上面5中类型,对应不同的上下文 1. 绘制简单图形 -> 画线 在自定义的View我...

chase的博客 447

iOS开发核心动画之Quartz2D绘图

一.Quartz2D的绘制不同图形1. 绘图步骤1> 自定义一个View2> 在- (void)drawrectangle方法中进行绘图获取当前上下文CGContextRef ref = UIGraphicsGetCurrentContext();绘制路径UIBezierPath *path = [UIBezierPath bezierPath];保存路径到上下文种CGCo...

216
上一篇: iOS-数据持久化(一)
下一篇: iOS-响应者链条
Lision丶
博客等级 码龄17年 0粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值