首页 > 其他分享 >SVG、Canvas、WebGL对比

SVG、Canvas、WebGL对比

时间:2023-03-22 14:33:32浏览次数:49  
标签:Canvas SVG WebGL js 图形 3D

SVG

使用XML描述2D图形

SVG中的元素和HTML元素一样,在输出图形前需要经过浏览器引擎的解析、布局计算和生成DOM树(SVG 元素太多时非常消耗性能),可以添加事件

SVG 对象的属性发生变化,浏览器自动重现图形

SVG绘制矢量图形,不依赖于终端设备的像素,可以随意放大缩小不会失真

适合场景:绘图面积大,数据量小

使用SVG的js组件:d3.js  plotly.js ...

 

Canvas 2D

通过Javascript来绘制2D图形,不需要浏览器引擎的解析、布局计算和生成DOM树(因此性能较SVG好)

逐像素进行渲染(要绘制的图形太多或者处理大量的像素计算遇到性能瓶颈)

其位置发生改变,会重新进行绘制。

适合场景:绘图面积小,数据量大

使用Canvas的js组件:echarts .... 

 

WebGL

WebGL(全写Web Graphics Library)是一种3D绘图协议,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。显然,WebGL技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂3D结构的网站页面,甚至可以用来设计3D网页游戏等等。(来自百度百科)

适合场景: 3D 展示、动画、游戏

 

 

  

标签:Canvas,SVG,WebGL,js,图形,3D
From: https://www.cnblogs.com/caroline2016/p/17243630.html

相关文章

  • svg基础及示例
    SVG可缩放矢量图形(ScalableVectorGraphics)是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式。SVG是W3C制定的一种新的二维矢量图形格式,也是规范中的网络矢量......
  • 前端切图之svg图标的复用基于defs和use 亲测有用
    切图网长期致力于web前端开发外包服务,而我们也关注到现在图标很多时候采用svg更多一点,然后图标字体文件已经提供了很多种类的图标,不过采用svg图标可以自行选择更符合、更好......
  • js canvas 照片旋转 demo
    <!DOCTYPEhtml><html><head><metacharset="utf-8"><metaname="viewport"content="width=device-width,initial-scale=1.0,maximum-scale=1.0,u......
  • webgl 系列 —— 绘制猫
    其他章节请看:webgl系列绘制猫上文我们了解了如何绘制渐变彩色三角形,明白了图形装配、光栅化,以及片元着色器计算片元的颜色。现在如果让你绘制如下一只猫。难道绘制......
  • canvas 中使用跨域的图片
    一张跨域的图片直接在canvas中使用控制台是会给出警告的:Error:SecurityError:Failedtoexecute'toDataURL'on'HTMLCanvasElement':Taintedcanvasesmaynotbeex......
  • 30 个免费 icon 下载网站推荐:图标、SVG、矢量图等使用指南
    30个免费icon下载网站推荐:图标、SVG、矢量图等使用指南图标无版权免费素材罗杰摩尔・2021-09-01人的想像力无远弗届,就如我们提供你的免费icon网站使用也几乎没有......
  • iOS借用WKWebView将svg转码为png
    #import"WKSVGConvert.h"#import<WebKit/WebKit.h>@interfaceWKSVGConvert()<WKNavigationDelegate>@property(nonatomic,strong)WKWebView*webView;@prop......
  • winform绘图与前端canvas绘图效率对比
    先说结论:前端canas的绘图效率更高。因为项目使用winform的缘故,最近要实现一些波形展示的功能。涉及到绘制,肯定离不开GDI+的内容,但是还有替代的方案吗?当然是有的,可双用Web......
  • canvas
    canvas前言Hello,大家好!我是Atrox......
  • canvas基本概念
    基本概念1.路径canvas的路径存放在路径列表里,在调用绘制命令的时候依次绘制。2.beginPathbeginPath表示一段路径的开始,在使用beginPath以后,重新开始填充路径队列。3.c......