svg究竟是什么?

1 要点

要点1:svg与jpg/png等格式的用途完全不同,不可相提并论,没有可比性,不可互相替代。

要点2:日常生活中,我们用相机拍摄自然景象得到的照片和视频,能且只能用jpg/png/mp4等格式存储,不可用svg格式存储。在自然景象中,像素之间没有确定的数学函数关系。我们称自然景象为图像,只能用像素点描述,无法用数学函数描述。

要点3:svg用于人为设计(特别强调人为设计,而非自然存在的)的点、线、面构成的图形,这些图形可用数学函数来表达。svg无法描述和表达自然界的景象。

概念

特点

生成者

描述方法

文件格式

图像

像素点之间无确定的数学函数关系

自然

逐个像素

jpg/png/mp4等

图形

点与点之间有确定的数学函数关系

人为

数学函数

svg

2 svg举例说明

假设要设计一个线条非常优美的图标,由椭圆、双曲线和抛物线构成。

假设这个图标非常巨大,由一万亿个点构成。

我们可以用以下要素描述这个图标:

S1:椭圆方程:长轴长度,短轴长度,x的范围,线条颜色。

S2:双曲函数或方程:x的范围,线条颜色

S3:抛物线函数或方程:x的范围,线条颜色

描述以上要素大约需要256字节,有了这256字节,软件会根据x的范围逐点绘制每条曲线,最终绘制出由一万亿个点构成的美丽图标!

设想一下,这个图标若用jpg/png去绘制,将耗费多少数据量。

结论

结论1:svg仅适用于人为设计的图形,这些图形可以用数学函数来表达,这些数学函数可以用很少的数据来表达。最终达到的目的:用很少的数据表达很复杂、很优美的图形。

结论2:自然景象(图像)中的点与点之间无关联关系,无法用数学函数表达,只能用像素点表达,jpg/png/mp4适用于表达自然景象(图像)。

另外,一定要辨别清楚图形和图像这两个概念。

图形是人为设计的,可用数学函数来表达,svg针对这种用途。

图像是自然存在的,无法用数学函数来表达,jpg/png/mp4针对这种用途。

svg究竟是什么?的更多相关文章

  1. SVG文件:从Illustrator导文件到Web

    可缩放矢量图形(SVG)是早在1998年就已经有的一种矢量图像格式.它总是和Web一起发展,但是直到现在才开始赶上Web发展的步伐.如今我们已经不能否认SVG和Web的相关性,所以让我们来学习一下从I ...

  2. 理解SVG坐标系统和变换: transform属性

    SVG元素可以通过缩放,移动,倾斜和旋转来变换-类似HTML元素使用CSS transform来变换.然而,当涉及到坐标系时这些变换所产生的影响必然有一定差别.在这篇文章中我们讨论SVG的transf ...

  3. 蛋疼的SVG外部引用方式

    SVG在html页面中有两种引用方式: 1. 内联.就是直接将SVG图形写在html的svg标签中,比如: <html> <head></head> <bod ...

  4. 获取SVG中g标签的宽度高度及位置坐标

    1. 问题的出现 对于普通的HTML元素,有很多获得其宽度width.高度height.距左left.距顶top等属性的方法: 类似offsetWidth,clientWidth,width之类的,通 ...

  5. 那些好用的 VS Code 插件,究竟是如何提高编码效率的?

    在上一篇文章中我们已经对 vscode 插件有了一个初步的认识与了解了,接下去我们就要"揭秘"一下市面上那些好用的 vscode 插件究竟是如何帮我们提高工作效率的. 本文首发于「 ...

  6. 学习ASP.NET Core,怎能不了解请求处理管道[1]: 中间件究竟是个什么东西?

    ASP.NET Core管道虽然在结构组成上显得非常简单,但是在具体实现上却涉及到太多的对象,所以我们在 "通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流 ...

  7. 【Web动画】SVG 实现复杂线条动画

    在上一篇文章中,我们初步实现了一些利用基本图形就能完成的线条动画: [Web动画]SVG 线条动画入门 当然,事物都是朝着熵增焓减的方向发展的,复杂线条也肯定比有序线条要多. 很多时候,我们无法人工去 ...

  8. 【Web动画】SVG 线条动画入门

    通常我们说的 Web 动画,包含了三大类. CSS3 动画 javascript 动画(canvas) html 动画(SVG) 个人认为 3 种动画各有优劣,实际应用中根据掌握情况作出取舍,本文讨论 ...

  9. SVG:textPath深入理解

    SVG的文本可以沿着一条自定义的Path来排布,比如曲线.圆形等等,使用方式如下所示(来源MDN): <svg viewBox="0 0 1000 300" xmlns=&q ...

随机推荐

  1. LRC 滚动器 + Vue.js

    LRC 滚动展示VueJS cnblogs @ Orcim  最 近一直在学习尤大大的这个前端框架.Vue 无疑是一款极易上手的前端框架,因为官方的文档就是中文的,十分"本土化", ...

  2. MySQL的8小时连接超时时间,导致系统过夜即崩溃,报错Could not roll back Hibernate transaction

    2014年3月开始给单位开发<机关规范化管理网络平台>,10月底成功上线运行,但是存在一个bug: 部署环境: apache tomcat 6.0.41 + mysql5.5 + jbpm ...

  3. OpenCV计算机视觉学习(2)——图像算术运算 & 掩膜mask操作(数值计算,图像融合,边界填充)

    在OpenCV中我们经常会遇到一个名字:Mask(掩膜).很多函数都使用到它,那么这个Mask到底是什么呢,下面我们从图像基本运算开始,一步一步学习掩膜. 1,图像算术运算 图像的算术运算有很多种,比 ...

  4. 【题解】CF1290B Irreducible Anagrams

    Link 题目大意:对于一个字符串,每次询问一个区间,看看这个区间是不是可以划分为若干区间,这些区间内数字经过排列后可以还原原来区间. \(\text{Solution:}\) 菜鸡笔者字符串构造该好 ...

  5. Hive理论基础

    数仓特征:面向主题,集成,非易失的,时变.数据仓库是在数据库已经大量存在的情况下,为了进一步挖掘数据资源.为了决策需要而产生的,不是所谓的"大型数据库".   数据库与数据仓库的区 ...

  6. NOIP提高组2018 D1T3 【赛道修建】

    颓了好几天,终于把这到题处理了一下. 话说,其实我考场上想出正解了,但是手残,算复杂度的时候多按了一个零,导致算出来是1亿多的复杂度,都不敢打...就把部分分都捡了一下... 题目描述: C 城将要举 ...

  7. ANOI 2009 【同类分布】

    好累啊啊啊~~~~~~,刷了一天的题了,嗯,再写两篇题解我就去颓Slay... 思路分析: 刚刚我们讲了数位DP,现在就感受一下吧.(其实我也就只敢做做安徽的题,四川的数位DP想都不敢想) 嗯好,我们 ...

  8. [学习笔记] 数位DP的dfs写法

    跟着洛谷日报走,算法习题全都有! 嗯,没错,这次我也是看了洛谷日报的第84期才学会这种算法的,也感谢Mathison大佬,素不相识,却写了一长篇文章来帮助我学习这个算法. 算法思路: 感觉dfs版的数 ...

  9. day47 Pyhton 数据库Mysql 04

    # 表结构 # 建表 - 表的增加 # create table # 删表 - 表的删除 # drop table # 改表 - 表的修改 # alter table 表名 # rename 新表名 ...

  10. 本地环境Django配置问题

    Django本地环境出现的问题 当你的前端出现这个问题的时候 你只需要吧setting.py 中的DEBUG 改为 True,即可 我原来是是DEBUG = False 本人亲测有用!!!