2312skia,17路径和api概述

2023-12-04 00:12
文章标签 路径 概述 api 17 2312skia

本文主要是介绍2312skia,17路径和api概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SkPath概述

路径包含可描边或填充线条和曲线.轮廓由一系列相连的直线和曲线组成.路径可包含零个,多个等值线.每条直线和曲线都由动词,点和可选Path_Conic_Weight描述.

每对连接直线和曲线共享公共;如,包含两条连接线的路径按Path_Verb序列描述:SkPath::kMove_Verb,SkPath::kLine_Verb,SkPath::kLine_Verb;
带三个项的Point序列,按第一行的结束和第二行的开始共享中间项.
路径组件"弧","矩形","圆角矩","圆"和"椭圆"由带精确描述期望的多个动词和点直线和曲线组成.添加Path后,这些组件可能会失去其标识;
但可检查Path以确定它是否描述了单个Rect,Oval,Round_Rect等.
例:
路径包含三个轮廓:直线,圆形和四边形.描边但未填充线条.描边和填充圆圈;描边形成一个圈.描边和填充Quad,但因为它没有闭合,因此Quad不会描边圈.
“路径”(Path)包含一个来确定重叠轮廓是形成填充还是孔洞Path_Fill_Type,还可确定是填充"直线和曲线"内部还是外部的区域.


绘画填充路径,然后描边,然后描边和填充.
从不共享路径内容.按值复制路径可有效创建一个独立于原始路径新路径.内部,在编辑之前不会复制副本内容,以减少内存使用并提高性能.

轮廓包含多个动词,及满足Path_Verb_Array期望的多个点.路径中的第一个Path_Verb总是是SkPath::kMove_Verb;,接着的每个SkPath::kMove_Verb都会启动新的轮廓.


每个SkPath::moveTo都会启动一个新的轮廓,SkPath::close()之后的内容也会启动一个新的轮廓.因为SkPath::conicTo前面没有SkPath::moveTo,因此第三个轮廓的第一个点第二个轮廓最后点开始.

如果轮廓中的最终Path_VerbSkPath::kClose_Verb,则Line连接轮廓中的Path_Last_Point第一个点起来.
Path_Last_Point点和第一个点画Paint_Stroke_Join描边闭合轮廓.如果没有SkPath::kClose_Verb作为最终动词,则不会连接Path_Last_Point和第一个点.
轮廓保持打开.在Path_Last_Point点和第一个点画Paint_Stroke_Cap描边开放轮廓.


开和闭轮廓描边绘画的路径.
等值线长度是从第一个点到Path_Last_Point点的行进距离,如果闭合等值线,则为从Path_Last_Point点到第一个点的距离.

即使等值线长度为零,如果描边线条可见,也会绘画Paint_Stroke_Cap描边线条.

接口索引

一些关键类是:
1,SkAutoCanvasRestore,Canvas保存栈管理器
2,SkBitmap:二维光栅像素数组
3,SkBlendMode:像素颜色算术
4,SkCanvas:绘图环境
5,SkColor:用整数编码的颜色
6,SkFont:文本风格和字体
7,SkImage:要绘画的二维像素数组
8,SkImageInfo:像素尺寸和特征
9,SkIPoint:两个整数坐标
10,SkIRect:整数矩形
11,SkMatrix:3x3变换矩阵
12,SkPaint:颜色,描边,字体,效果
13,SkPath:连接直线和曲线的序列
14,SkPicture:绘图命令序列
15,SkPixmap:像素映射,图像信息和像素地址
16,SkPoint:两个浮点坐标
17,SkRRect:浮点圆角矩形
18,SkRect:浮点矩形
19,SkRegion:压缩剪切掩码
20,SkSurface:绘图目的地
21,SkTextBlob:运行符号
22,SkTextBlobBuilder:字形块的构造器

概述

Skia围绕SkCanvas对象组织.它是调用"draw"的主机:drawRect,drawPath,drawText等.其中每个都有两个组件:正在绘画的原语(SkRect,SkPath等)和颜色/风格属性(SkPaint).

canvas:>drawRect(rect, paint);

画笔保留了(本例中)描述如何绘画矩形的大部分状态:颜色,填充或描边,如何与以前绘画内容混合.
画布保存的状态相对较少.它指向正在绘画实际像素,并维护一堆矩阵剪切.
因此,上面调用中,画布的当前矩阵可转换矩形的坐标(平移,旋转,倾斜,透视),画布的当前剪切可能会限制矩形在画布上的绘画位置,但绘图的所有其他风格属性都由画布控制.

这篇关于2312skia,17路径和api概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/451379

相关文章

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想

Python中Windows和macOS文件路径格式不一致的解决方法

《Python中Windows和macOS文件路径格式不一致的解决方法》在Python中,Windows和macOS的文件路径字符串格式不一致主要体现在路径分隔符上,这种差异可能导致跨平台代码在处理文... 目录方法 1:使用 os.path 模块方法 2:使用 pathlib 模块(推荐)方法 3:统一使

一文教你解决Python不支持中文路径的问题

《一文教你解决Python不支持中文路径的问题》Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的... 目录问题背景解决方案1. 设置正确的文件编码2. 使用pathlib模块3. 转换路径为Unicod

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

MySQL9.0默认路径安装下重置root密码

《MySQL9.0默认路径安装下重置root密码》本文主要介绍了MySQL9.0默认路径安装下重置root密码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录问题描述环境描述解决方法正常模式下修改密码报错原因问题描述mysqlChina编程采用默认安装路径,

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll