SVG精髓阅读笔记

SVG入门—如何手写SVG 欢迎关注富途web开发团队 ,缺人从众 小编刚来公司的时候,有个需求需要做一个图形动画,当时本来想使用图片做的。Toobug看了需求后,就说可以使用SVG做呀。小编当时对与SVG一点都不会呀。Toobug看我那无辜的表情,说没事。我这有一本书 《SVG精髓》(作者:就是Toobug),你拿去看看,边学边做呗。 好吧,小编后面就看了一个星期的SVG精髓,现在也算入门了吧。 那么今天小编也不是让大... 阅读详情

SVG,是一种可缩放矢量图形,一种XML应用.可以以一种简洁,可移植的形式表示图形信息.

计算机中描述图形信息的二大系统是栅格图形和矢量图形,在栅格图形系统中,图像被表示为图片元素或者像素的长方形数组,每个像素用其RGB颜色值或者颜色表内的索引表示,这一系列像素也称为位图.

在矢量图形系统中,图像被描述为一系列几何形状,矢量图形阅读器接受在指定坐标集上绘制形状的指令,而不是接受一系列已经计算好的像素.有人把矢量图形描述为一组绘图指令,而位图则是在特定的位置填充颜色的点.

矢量图形的用途:1:计算机辅助绘图,CAD,可以精确地测量和放大绘图以便查看细节非常重要,2:设计用于高分辨率打印图形的程序,

SVG的特点:可缩放,不失真,无锯齿,或锯齿不明显.

SVG文档:

<?xmlversion="1.0"?>

<!DOCTYPE svgPUBLIC "-//W3C//DTD SVG 1.1//EN"

 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svgwidth="500" height="500" version="1.1"

    xmlns="http://www.w3.org/2000/svg"

    xmlns:xlink="http://www.w3.org/1999/xlink">

</svg>

根元素svg可以用width和height二个属性定义svg的像素宽和像素高的

SVG的一些基本元素和用法,

SVG的坐标原点在左上角(0,0)

元素circel可以画圆相关图形, 指定中心点的x坐标和y坐标以及半径,如<circle cx=”10” cy=”10” r=”50” style=”stroke:black;fill:none”/>可以作为单独属性写出来如: <circle cx=”10” cy=”10” r=”50” stroke=”black”fill=”none”/>

<line/> 用于划线  x1 y1 x2 y2

<g></g>分组 指定一个id 以便后续复用

<use/> 变换复制组

<polyline/> 折线

<text></text>文本元素

<rect/> 矩形

在网页中使用SVG

SVG作为图像,作为图像,作为CSS背景,作为对象,内联SVG

 

SVG的坐标系统

视口,文档使用的画布区域称为视口,单位可以em,默认字体大小,ex 字母x的高度,px像素,pt点pc12点cm厘米,mm毫米,in英寸可混用,没有单位默认为像素

默认坐标是水平坐标向右递增,垂直坐标垂直向下递增

元素svg上的属性viewBox属性,有四个值,分表代表想要叠加在视口上的用户坐标系统的最小x坐标,最小y坐标,宽度和高度

下面一行代码是在4厘米*5厘米的图纸上,设置每厘米16个单位的坐标系统

<svg width=”4cm”height=”5cm” viewBox=”0 0 64 80”></svg>

属性viewBox的宽高比可以不同于视口的宽高比,在这种情况下SVG可以做三件事

1:按较小的尺寸等比例缩放图形,以使图形完全填充视口,

2:按较大的尺寸等比例缩放图形并裁剪掉超出视口的部分

3:拉伸和挤压绘图以使其恰好填充新的视口

属相preserveAspectRatio允许我们指定被缩放的图形相对于视口的对齐方式,以及是希望它适配边缘还是要裁剪,

PreserveAspectRatio=”alignment[meet | slice]”

其中alignment指定轴和位置, x,y Min Mid Max

Meet参数适配viewBox视口

参数slice会裁剪图形不适合视口的部分,

如果使用none参数,图像不会被等比例缩放,以使它的用户坐标适合视口.

Svg支持嵌套的坐标系统将一个svg元素插入到一个新的文档中

 

Svg中的基本形状

线段<line x1=”” y1=”” x2=”” y2=””/>

笔画特性:stroke-width

笔画颜色stroke

线条透明度stroke-opacity

虚线:stroke-dasharray

矩形<rect x=”” y=”” width=”” height=””/>

圆角矩形加上属性rx 与ry

椭圆<ellipse cx=”” cy=”” rx=”” ry=””/>

多边形<polygon points=””/> 可以用来画任意封闭图形,不需要指定终点,自动闭合

属性fill-rule规定填充的规则,二个值为nonzero 默认和evenodd

折线<polyline/> 不会自动闭合

当使用<line> 和<polyline>划线时,可以为stroke-linecap指定不同的值来确定线的头尾形状,可能的取值为butt,round,square

属性stroke-linejoin用来指定线段在图形棱角处交叉时的效果,可能的取值有,miter 尖,round圆,bevel平

 

文档结构:

Svg提倡表现与结构分离,

我们有四种方式指定图像的表现信息分别是,内联样式,内部样式表,外部样式表,以及表现属性

内联样式

<circle  style=”stoke:black;fill:none”>

内部样式表

<svg>

<defs>

<style  type=”text/css”>

<![CDATA[[

circle{

fill:#ffc;

stoke:blue

}

]]>

</style>

</defs>

</svg>

外部样式表:

<?xml-stylesheethref=”ext_style.css” type=”text/css”?>

表现属性

<circle cx=”10”cy=”10” r=”5” fill=”red” stroke=”black” stroke-width=”2”/>

表现属性位于优先级的最底部.

 

分组和引用对象

<g>元素会将其所有的子元素作为一个组合,通常组合还会有一个唯一的id作为名称,

<use>元素,可以重用元素,

如<use xlin:href=”#house” x=”70” y=”100”>

<defs>元素,可以存放想要复用的对象,

<symbol>元素也提供一种组合元素的方式,他的内容永远不会显示,它还可以指定viewBox 和preserveAspectRatio属性

元素<image>可以包含一个完整的svg或者栅格文件,


SVG绘图模型的深入解析与技巧分享 本文深入探讨SVG绘图模型,包括CSS渲染属性的使用、SVG层的z-index控制、以及如何处理不支持paint-order属性的浏览器。文章还涉及了如何在不支持z-index的情况下,通过JavaScript手动控制SVG层的堆叠顺序,以及如何使用ARIA属性保持屏幕阅读器的逻辑顺序。此外,文章介绍了shape-rendering、text-rendering、color-rendering和image-rendering等渲染属性,提供了如何通过这些属性改善SVG图形表现的实用建议。 阅读详情

相关推荐

SVG精髓 第2版 (中文+英文)

本书通过实例透彻讲解了SVG(可缩放矢量图形)这种标记语言的规范及应用。作者从简单的SVG应用开始,带领读者逐步探索了SVG的复杂功能,包括滤镜、变化、渐变和模式...

SVG精髓-svg开发指南

SVG精髓 目录 文章目录前言推荐阅读1. 入门1. 图形系统1. 栅格系统2. 矢量图形2. `SVG`作用1. 文档结构2. `circle`3. 指定样式 - `fill, stroke`4. 线 - `line`5. 变换坐标系统 - `use, transform, scale`6. 折线 - `polyline`7. `path`8. `text`2. 网页中使用`SVG`1. 常见的插入网页的方法1. ``2. `css`2. `SVG`作为应用程序3. 混合文档的`SVG`1. `svg`内

莫兮的博客 906

svg精髓(第二版)

svg制图; 矢量图; 编程制图; SVG精髓第二版; 中文版

给前端工程师的推荐书单,高清电子PDF版

前端即网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页。——百度百科 给前端工程师的推荐书单 关注微信公众号:进击的代码Amos,回复书名自动获取,高清电子版 HTML HTML5权威指南 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;《HTML5 权威指南》是系统学习网页设计的权威参考图书。本书分为五部分:第一部分介绍学习本书的预备知识和HTML、CSS 和JavaSc...

贰拾壹 1505

SVG精髓第二版中英文对照

本书详尽介绍了可缩放矢量图形(SVG)技术。SVG是一种标记语言,为大多数矢量绘图程序和交互式Web图形工具所使用。本书将带你详细了解SVG的功能,首先学习简单的SVG应用,如绘制线条,然后逐步探索复杂的特性,比如滤镜、变换、渐变和图案等。 本书第2版扩展了动画、交互式图形以及SVG编程等内容。交互式的在线示例让你很容易在Web浏览器中实验SVG的特性。本书还为经验丰富的设计师准备了6个附录,解释了XML标记和CSS样式等基本概念,因此即使你没有网页设计的经验,也可以开始学习SVG。 通过阅读本书,你将能够: 为网页创建高质量、高分辨率的图形; 创建通过搜索引擎或辅助技术易于访问的图表和装

404页面需用的svg文件

404页面需用的svg文件

SVG学习笔记

/svg>

qq_45660256的博客 1247

记一次Nacos线程数飙升排查

Nacos线程飙升问题排查

叭嘣的博客 2634

关于SVG文件中JS代码无法使用大于或小于等符号的问题

SVG文件的JS代码,如果遇到等符号标红的现象,可以试试这个方案

timiki的博客 767

Arcmap计算土方量教程

1. 创建现状TIN 结果数据: 2. 创建设计TIN 结果数据: 注意:现状TIN和设计TIN构建时候的坐标系不同,设置坐标系见最后的注意事项第1点,就是import(导入)那步骤,现状TIN构建时选择高程点数据或者等高线数据,设计TIN构建时候选择洱海面数据 3. TIN转栅格 改成你要存的数据库,注意中间不要有汉字 结果数据(设计TIN转栅格的同理) 4. 裁剪现状TIN转成的栅格 结果数据: 5. 计算土方量 结果数据: ...

欢迎关注,共同进步! 5016

破盾实录|Vueling航空阿卡迈防护逆向:从503挑战到Cookie生成的全流程拆解

摘要:文章分享了作者在爬取西班牙伏林航空(Vueling)机票数据时,遭遇阿卡迈(Akamai)防护系统的实战经历。起初简单的请求被拦截返回503错误,分析发现阿卡迈通过混淆JS代码实施"挑战-验证"机制,需模拟真实浏览器环境才能获取有效Cookie。作者详细拆解了逆向过程:从抓包分析JS挑战流程,到破解代码混淆和控制流平坦化,最终用Python+Pyppeteer成功模拟浏览器特征,突破防护获取数据。整个过程涉及JS反混淆、环境检测绕过和Cookie生成验证等关键技术点,为类似防护系统

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1643

c语言纵行输入大写字母图形,GitHub - xswei/SVG_Essentials: 《SVG精髓》 阅读笔记

SVG精髓本书所有完整示例代码原书示例代码第一章 入门指南1. 图形系统计算机中描述图形信息的两大图形系统:栅格图形和矢量图形。栅格图形中图形被表示为图片元素或者像素的长方形数组。矢量图形中图形被描述为一系列几何形状,通过矢量图形阅读器在指定的坐标集上绘制形状。2. SVG(Scalable Vector Graphics)SVG是一种XML应用,用来表示矢量图形。所有的图形有关信息被存储为纯文本...

weixin_34651330的博客 422

openclaw : 无法将“openclaw”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 解决方案

本文主要介绍了openclaw : 无法将“openclaw”项识别为 cmdlet、函数、脚本文件或可运行程序的名称解决方案,希望能对使用openclaw的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 12万+

SVG精髓-笔记与实践

笔记链接:http://f5528907.wiz03.com/share/s/3RkEA70XbA2d2jbjQh1dHWIp3APUr93rFQYZ2srCaU2YDjgc 在网页中使用svg 1.当做图像使用: 在元素中使用: img src="./person.svg" alt="" ti

糖糖小菜鸟前端er 1241

ECU诊断功能测试:从理论到实践

ECU诊断功能是指通过特定的诊断协议与ECU进行通信,以获取ECU的状态信息、故障码、数据流等,并执行特定的诊断操作。诊断功能的主要目的是帮助开发人员和维修人员快速定位和解决ECU中的问题,确保车辆的安全性和可靠性。UDS协议是ISO 14229标准的一部分,定义了一系列的诊断服务,如读取故障码、清除故障码、读取数据流等。UDS协议基于CAN(Controller Area Network)总线,具有较高的灵活性和扩展性。读取故障码是诊断功能中最基本的操作之一。通过读取故障码,可以快速定位ECU中的问题。

闲人编程的博客 1809

PCL ——LevenbergMarquardt非线性最小二乘法拟合圆柱(C++详细过程版)

使用C++详细过程版实现的LevenbergMarquardt非线性最小二乘法拟合圆柱

点云侠的博客 607

o'Reill的SVG精髓(第二版)学习笔记——第十一章

第十一章:滤镜 11.1滤镜的工作原理 当SVG阅读器程序处理一个图形对象时,它会将对象呈现在位图输出设备上;在某一时刻,阅读器程序会把对象的描述信息转换为一组对应的像素,然后呈现在输出设备上。例如我们用SVG的<filter>元素指定一组操作(也称作基元,primitive),在对象的旁边显示一个模糊的投影,然后把这个滤镜附加给一个对象:   <fliter id=...

风雨飘飘飘啊飘的博客 398

【实战篇导读】四足机器人运动控制导读

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对四足机器人运动运动控制系统及相关算法做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章主要介绍了波士顿spot机器人的发展历史、四足机器人的硬件系统及电机执行器组成包括硬件系统、关节电机执行器,机载传感器机处理器及电气连接等。概述了四足机器人规划控制、感知、定位及局部地图的相关算法方向。

qq_35635374的博客 679

o'Reill的SVG精髓(第二版)学习笔记——第九章

第九章:文本 9.1 字符:在XML文档中,字符是指带有一个数字值的一个或多个字节,数字只与Unicode标准对应。 符号:符号(glyph)是指字符的视觉呈现。每个字符都可以用很多不同的符号来呈现。 一个符号可能由多个字符构成。一些字体为特定的字母组合准备了单独的符号,以使他们更好看,这种特性叫做(连字)。有时候,一个字符也可能由几个符合组合而成。 字体:字体是指代表某个字符集合的一组...

风雨飘飘飘啊飘的博客 230

YOLO126优化:损失篇 | AAAI 2025 | 一种基于尺度的动态(SD)损失,根据目标大小动态调整尺度和位置损失的影响,提高了网络检测不同尺度目标的能力

提出了一种基于尺度的动态(SD)损失,它根据目标大小动态调整尺度和位置损失的影响,提高了网络检测不同尺度目标的能力。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 448

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

o'Reill的SVG精髓(第二版)学习笔记——第三章

第三章:坐标系统 3.1视口 文档打算使用的画布区域称作视口。我们可以在<svg>元素上使用width和height属性确定视口的大小。属性的值可以是一个数字,该数字会被当作用户坐标下的像素。也可以指定width和height为带有单位的数字,单位的取值是下列值之一。 ① em:默认字体的大小,通常相当于文本行高。 ② ex:字母x的高度。 ③ px:像素(在支持css2的图...

风雨飘飘飘啊飘的博客 252

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

SVG 基础

前言 在整理图片相关优化的时候发现自己对 SVG 所知甚少,于是学习了一波,大体总结了一下,整理成文。因为前端开发人员因为细分领域不同,对待 SVG 的态度差别也很大,对于数据可视化这种对 SVG 有高要求的同学这里的介绍估计没啥干货。对于平常较少接触 SVG 的同学,可以对 SVG 有个初步的认识。 这篇文章主要参考 《SVG 精髓》一书。接下来,开始干活。 基础 SVG,即可缩放矢量图形(Sc...

weixin_34375054的博客 678

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

o'Reill的SVG精髓(第二版)学习笔记——第八章

第八章:图案和渐变 要使用图案,首先要定义一个水平或者垂直方向重复的图形对象,然后用它填充另一个对象或者作为笔画使用。这个图形对象呗称作tile(瓷砖)。 下面可以把SVG绘制的二次曲线作为图案。   <!-- 图案的路径 --> <path d="M 0 0 Q 5 20 10 10 T 20 20" style="stroke: black;fil...

weixin_30363509的博客 201

c语言纵行输入大写字母图形,《SVG精髓》笔记总结 · Issue #IBRG3 · Janking/Infinite-f2e-club - Gitee.com...

第一章 入门指南1. 图形系统计算机中描述图形信息的两大图形系统:栅格图形和矢量图形。栅格图形中图形被表示为图片元素或者像素的长方形数组。矢量图形中图形被描述为一系列几何形状,通过矢量图形阅读器在指定的坐标集上绘制形状。2. SVG(Scalable Vector Graphics)SVG是一种XML应用,用来表示矢量图形。所有的图形有关信息被存储为纯文本,具有XML的开放性、可移植性和可交互性。...

weixin_33586720的博客 538
上一篇: 我觉得创业需要的品格素养
下一篇: VUE项目集成环信WebIM即时通讯以及所遇到的问题
拿我格子衫来
拿我格子衫来 领域专家: 前端开发技术领域 领域专家: 前端开发技术领域
博客等级 码龄10年 6万+粉丝 858原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拿我格子衫来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值