前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >从SVG到Canvas:选择最适合你的Web图形技术

从SVG到Canvas:选择最适合你的Web图形技术

作者头像
奋飛
发布于 2023-08-24 03:52:30
发布于 2023-08-24 03:52:30
94600
代码可运行
举报
文章被收录于专栏:Super 前端Super 前端
运行总次数:0
代码可运行

SVG 和 Canvas 都是可以在 Web 浏览器中绘制图形的技术。 众所周知, icon 通常使用 svg(如 iconfont),而交互式游戏采用 Canvas。二者具体的区别是什么?该如何选择?

  • 声明式还是命令式?
  • 绘制的图形不同:Svg 绘制矢量图(不依赖分辨率),Canvas 绘制位图(依赖分辨率);
  • 事件处理不同:Svg 基于 XML,对 DOM、事件友好,Canvas 通过 javascript 绘制,内部元素添加事件比较复杂;
  • Svg 对于 css 更加友好

声明式 pk 命令式

Svg 是矢量【声明式】

可缩放矢量图形Scalable Vector Graphics,SVG)基于 XML 标记语言,用于描述二维的矢量图形

作为一个基于文本的开放网络标准,SVG 能够优雅而简洁地渲染不同大小的图形,并和CSSDOMJavaScriptSMIL 等其他网络标准无缝衔接。本质上,SVG 相对于图像,就好比 HTML 相对于文本。

SVG 图像及其相关行为被定义于 XML 文本文件之中,这意味着可以对它们进行搜索、索引、编写脚本以及压缩。此外,这也意味着可以使用任何文本编辑器和绘图软件来创建和编辑它们。

SVG 代码可以直接在 HTML 中运行,就像声明性绘图指令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<svg viewBox="0 0 100 100">
  <circle cx="50" cy="50" r="50" />
</svg>

和传统的点阵图像模式(JPEG、PNG)不同的是,SVG 格式提供的是**矢量图,这意味着它的图像能够被无限放大而不失真或降低质量,并且可以方便地修改内容,无需图形编辑器。**通过使用合适的库进行配合,SVG 文件甚至可以随时进行本地化。

如果关心图形的灵活性和响应(不失真)能力,SVG 就是最佳选择。

Canvas 是一个 JavaScript 绘图 API【命令式】

Canvas 提供了一个通过 JavaScript 和 HTML 的元素来绘制图形的方式。

将一个<canvas>元素放入 HTML 中,然后使用 JavaScript 进行绘图。换句话说,可以发出命令告诉它如何绘制,典型的命令式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<canvas id="myCanvas" width="100" height="100"></canvas>
<script>
  var canvas = document.getElementById('myCanvas');
  var context = canvas.getContext('2d');
  var centerX = canvas.width / 2;
  var centerY = canvas.height / 2;
  var radius = 50;

  context.beginPath();
  context.arc(centerX, centerY, radius, 0, 2 * Math.PI, false);
  context.fillStyle = 'green';
  context.fill();
</script>

DOM pk 画布

SVG 在 DOM 中

如果熟悉 DOM 事件(例如clickmouseDown等),那么 SVG 中也可以使用这些事件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<svg viewBox="0 0 100 100">
  <circle cx="50" cy="50" r="50" />
  <script>
    document.querySelector('circle').addEventListener('click', e => {
      e.target.style.fill = "red";
    });
  </script>
</svg>

canvas 像画布

具有大量复杂细节和渐变的高度交互性工作是 Canvas 的领域。DOM 管理元素越多,速度就越慢,移动的元素越多,速度就越慢。且 Canvas 有不错的性能保障。由于这个原因,使用 Canvas 构建的游戏比使用 Svg 构建的游戏多得多。

与 CSS 的友好性

svg 可以很好的结合 css

与上述事件方式类似,可以通过css进行样式处理

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<svg viewBox="0 0 100 100">
  <circle cx="50" cy="50" r="50" />
  <style>
    circle { fill: blue; }
  </style>
</svg>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
XP下SQL2000的安装(ZZ)
XP下SQL2000的安装(ZZ)          这是从网上找来的,可能过时了吧        一、找一张SQL server服务器版光盘,在光盘上找到目录“MSDE”并进入,运行SETUP.EXE文件,并按照程序要求进行安装。安装完成重新启动计算机。         二、运行光盘中的,AUTORUN.EXE文件,或让光盘自动运行,打开安装界面后,点击“安装SQL server 2000组件(C)”=》“安装数据库服务器(S)”这里程序将提示你“….服务器组件在此系统上不受支持,…..”点“确定”。进入
qinyang
2018/06/05
1.4K0
部署SMS2003+sp3
SMS 2003是windows下强大的全面管理工具,SMS 2003集资产管理、软件分发、远程工具、补丁管理等多项功能,SMS在与其他同类的桌面管理工具相比有很大的优势。
py3study
2020/01/14
1K0
SMS2003+SP3的部署
SMS2003(System Management Server2003)是微软公司推出的基于ITIL(IT Infrastructure Library,IT基础架构)的变更和配置管理解决方案。 SMS的版本发布时间:      SMS1.0              1994.7      SMS1.1              1995.6      SMS1.2              1996.6      SMS2.0              1999.1      SMS2003             2003.10      SCCM2007(SMSV4)     2007.11 SMS为企业提供了软硬件资产管理、软件分发、补丁管理、远程诊断和排错、操纵系统部署等主要功能。所以很多IT管理人员一直用SMS对企业内基于Windows操纵系统的桌面计算机和服务器进行有效的管理。 今天就为大家介绍一下SMS2003+SP3的部署。部署环境如下:
py3study
2020/01/09
1.1K0
SMS2003+SP3的部署
SQL Server 2008安装图解教程
安装SQL2008的过程与SQL2005的程序基本一样,只不过在安装的过程中部分选项有所改变,当然如果只熟悉SQL2000安装的同志来说则是一个革命性的变动,可以通过网盘下载:http://pan.baidu.com/s/1pKkPeo7
全栈程序员站长
2022/09/10
2.4K0
SQL Server 2008安装图解教程
Microsoft SQL Server 2008如何安装(MSSQL2008)
有小伙伴在问Microsoft SQL Server 2008怎么安装,之前笔记写的不安装,这次更新下,安装步骤详见教学内容
用户1094633
2022/02/14
1.6K0
tfs安装教程_tfs4全称
索引: 介绍 安装操作系统 准备安装过程中的需要的用户账户 安装IIS 7.0 安装SQL Server 2008 安装SQL Server 2008 SP1补丁 安装TFS 2010 配置TFS 2010(以高级配置为例) 配置TFS Build服务 安装序列号
全栈程序员站长
2022/11/09
1.7K0
在Windows XP下安装 SQL SERVER 2000 企业版
<span class="Apple-style-span" style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px; color: rgb(0, 0, 0); ">SQL2000企业版本适用于WIN 2000系统,2003系统和XP一般装不了需要选用个人版,当然如果你在不清楚的前提下辛辛苦苦下载了企业版本却不能安装,是不是很失望呢?这里介绍一个XP下安装装SQL2000企业版本方法以供参考~ 办法如下: 一.在SQL服务器的安装盘中找到MSDE这个目录,并且点击setup.exe安装它,过程简单直接下一步就OK了。 二. 重启系统WINDOWSXP,这下就可以看到SQL服务的图标出现了。 三. 再拿出SQL服务器版的安装光盘,直接安装客户端工具(这个不要多说吧?最简单的方法就是直接点击光盘根目录下的autorun.exe) 根据提示安装,自检过程中知道系统不是SERVER版,会提示只安装客户端工具。(哈哈,服务端我已有了) 四. 打开企业管理器,试用SA用户连一下看看,是不是发现SA用户登陆失败?因为你还没有与信任SQL SERVER连接相关联。还好这个只要对系统注册表稍加修改就可以啦: 在运行中输入regedit打开注册表编辑器,找到[HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\MSSQLSERVER\MSSQLSERVER],这个项里面有一个键值LoginMode,默认下,值是1,现在将值改为2,重启电脑。 五. 再打开企业管理,再连接试试,是不是OK了?</span>
zhaoJian.Net
2023/02/24
1.6K0
PageAdmin Cms安装教程:Sql Server R2数据库安装
如果使用pageadmin cms建站系统建网站,不仅仅需要安装.net framework环境,还需要安装数据库,pageadmin网站管理系统采用的数据库采用sql server,下面小熊优化的小编就给大家讲解一下如何安装sql server,下面以sql2008为例。
用户4831957
2019/06/01
1.2K0
SQL Server安全(2/11):身份验证(Authentication)
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切。但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念。这篇文章提供了基础,因此你可以对SQL Server里的安全功能充分利用,不用在面对特定威胁,不能保护你数据的功能上浪费时间。 身份验证是验证主体(需要访问SQL Server数据库的用户或进程,是声称是的人或物)的过程。主体需要唯一的身份,这样的话SQL Server可以决定主体有哪个许可。在提供安全访问数据库对象中,正确的身份验证是必须的第一步。 S
逸鹏
2018/04/10
2.6K0
SQL Server安全(2/11):身份验证(Authentication)
SQL SERVER 安装
因为不少同学正在使用SQL SERVER进行学习,但是在学习第一步的安装阶段便出现了问题或者安装后经常需要激活等情况,因此做了一个简单的安装指引。大家可以在歌声中边听边学。
俊才
2020/04/07
1.7K0
SQL2000如何附加管家婆软件mdf文件
管家婆软件本地客户大都知道主机重装系统后,需要重新在电脑上安装数据库,数据库安装完成后需要将管家婆软件安装路径下DATA文件夹内的mdf文件附加到数据库内才能正常使用管家婆文件,那么如何将mdf文件附加到数据库里呢?今天来和小编一起学习下SQL2000如何附加管家婆软件mdf文件的吧!
合肥管家婆中心
2023/11/28
3220
sql server下载安装步骤(sql2005安装教程图解)
————————–2021.3.9更新—————————————- 有几位读者私聊我遇到了如下问题
全栈程序员站长
2022/08/02
2K0
sql server下载安装步骤(sql2005安装教程图解)
sql 2000 无法连接远程数据库 sqlserver不存在或访问被拒绝 解决方案
一 看ping 服务器IP能否ping通。    这个实际上是看和远程sql server 2000服务器的物理连接是否存在。如果不行,请检查网络,查看配置,当然得确保远程sql server 2000服务器的IP拼写正确。    二 在Dos或命令行下输入telnet 服务器IP 端口,看能否连通。    如telnet 202.114.100.100 1433    通常端口值是1433,因为1433是sql server 2000的对于Tcp/IP的默认侦听端口。如果有问题,通常这一步会出问题。通常的
lpxxn
2018/01/31
4.3K0
SQL Server 2005 安装图解教程(Windows)
因工作需要,好久未安装SQL Server2005,今天安装了一下,特此写下安装步骤留下笔记。
全栈程序员站长
2022/09/06
4.5K0
SQL Server 2005 安装图解教程(Windows)
SQL Server 2000 连接中三个最常见错误原因分析
如果 ping <服务器IP地址> 不成功,说明物理连接有问题,这时候要检查硬件设备,如网卡,HUB,路由器等.
宵云科技
2020/02/12
2.5K0
精通脚本黑客txt版-第一章
第1章 本地服务器的搭建 1.1 WEB服务器简介 1.2 ASP服务器的搭建 1.2.1 IIS的安装 1.2.2 ACCESS数据库的安装 1.2.3 SQL Server数据库的安装 1.2.4 ASP环境的测试 1.3 PHP服务器的搭建 1.3.1 Apache的安装 1.3.2 MySQL数据库的安装 1.3.3 PHP的安装 1.3.4 PHP环境的测试 1.4 JSP服务器的搭建 1.4.1 JDK的安装 1.4
用户1467662
2018/03/30
2.2K0
SQL Server2012保姆安装教程----带你快速上手数据库创建
但是我们学校的课程使用的是sql server,同是数据库,两个肯定不会有太大的差异,但是只能乖乖的学习一下,安装一下,机房使用的就是这个2012的版本,老师说这个版本就可以,不要我们安装太新的版本,因为这个稳定性上面不是特别好,虽然可能会有新的功能,于是自己想要安装这个sql server2012这个版本;
阑梦清川
2025/02/24
860
SQL Server2012保姆安装教程----带你快速上手数据库创建
异地远程访问本地SQL Server数据库【无公网IP内网穿透】
现在我们身边的只能设备越来越多,各种智能手机、平板、智能手表和数码相机充斥身边,需要存储的数据也越来越大,一张手机拍摄的照片都可能有十多M,电影和视频更是按G计算。而智能设备的存储空间也用的捉襟见肘。能存储大量文件的,最合适的也就是家用电脑了。但家用电脑又存在无法随时随地调阅文件资料的问题。但只要经过简单几步,就能让家里的电脑秒变随时随地调阅存取文件的私有云盘。今天,笔者就为大家介绍,如何使用两个简单软件,让家里的电脑变身安全高效的私有云盘。
iOS Magician
2023/10/11
4070
异地远程访问本地SQL Server数据库【无公网IP内网穿透】
数据库SQL Server2012下载链接与安装教程
1):下载SQL Server2012下载链接 链接:https://pan.baidu.com/s/1LaTJWWODT2961P8lyB7yoQ?pwd=z730 提取码:z730 第二步骤:双
视觉人机器视觉
2023/01/15
1.2K0
数据库SQL Server2012下载链接与安装教程
SQL Server 2012软件安装教程
6、选择“输入产品密钥”,输入以下密钥,点击“下一步” FH666-Y346V-7XFQ3-V69JM-RHW28
宝耶需努力
2022/12/13
1.4K0
SQL Server 2012软件安装教程
相关推荐
XP下SQL2000的安装(ZZ)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档