SVG-绘制图形,渐变模糊效果,TWO.JS-12.18

svg 基础

1.svg是一种使用xml技术描述二维图形的语言,是一种适量图
2.与canvas相比的优势

  • 能被搜索引擎搜索到
  • 不依赖分辨率
  • 能绑定事件
  • 大型渲染区域(如:百度地图),不适合游戏
    3.用途
  • 静态图形绘制
  • 动态动画效果
  • 专门事件绑定

绘制图形

1.绘制矩形
<svg>
<rect id="rect" width="50" height="50" fill="red" stroke="black" stroke-width="5"></rect>
</svg>
注意:

  • 如果要使用style设置背景颜色,不能使用style=“background:red”,要使用style=“fill:red”
  • 不能通过js设置图形的属性,这些属性都为只读,如(width,height)
    2.绘制圆形
    <svg>
    <circle cx="100" cy="100" r="50"></circle>
    </svg>
    3.绘制椭圆
    <svg>
    <ellipse cx="100" cy="100" rx="50" ry="80"></ellipse>
    </svg>
    4.绘制直线
    <svg>
    <line x1="10" y1="10" x2="200" y2="200" stroke="black></line>
    </svg>
    注意:颜色必须得加
    5.绘制折线
    <svg>
    <polyline points="100,20 20,100 200,200"></polyline>
    </svg>
    6.绘制多边形
    <svg>
    <polygon points="100,20 20,100 200,200 100,20"></polygon>
    </svg>

渐变效果

1.线性渐变
<svg>
<defs>
<linearGradient id="rect" x1="0" y1="0" x2="100%" y2="100%">
//渐变元素,坐标值必须是百分数
<stop offset="0" stop-color="red"></stop>
<stop offset="100%" stop-color="green"></stop>
//通过stop设置渐变颜色,offset值必须是百分数
</linearGradient>
<defs>
<rect width="400" height="400" fill="url(#rect)"></rect>
//使用fill属性,值为url(#渐变元素的id值)
</svg>
2.扇形渐变
radialGradient 参考线性渐变

模糊效果

   <svg>
    <defs>
     <filter id="rect"><feGaussianBlur in=“SourceGraphic stdDeviation="3”></filter>
    <defs>
    <rect width="400" height="400" filter="url(#rect)" fill="red"></rect>
    //使用fill属性,值为url(#渐变元素的id值)
   </svg>

two.js

1、 专门用于绘制二维图形,支持SVG Canvas WebGL
2、 特点

  • 深度实现具有动画效果的矢量图
  • 致力于更简洁地创建矢量图及动画效果
  • 不支持文本或图片
    3、 svg再将来的工作开发,使用率并不高
  • svg图片一般都是由UI设计师来完成
  • SVG即使是我们自己来设计,目前网络上有很多提供svg图片的网站
  • 使用JS库来
  1. 官网
    https://two.js.org/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在React Native中使用ARTReact Native ART 究竟是什么?所谓ART,是一个在React...
    JackfengGG阅读 9,576评论 2 50
  • SVG API: SVG是一种可缩放矢量图形,一种二维图形表示语言 与canvas不同的是,在浏览器的开发工具中能...
    Iris_mao阅读 1,037评论 0 5
  • 一、栅格图形和矢量图形栅格图形:也称位图,图像由一组二维像素网格表示。Canvas 2d API 就是一款栅格图形...
    linda102阅读 1,168评论 0 4
  • 一.什么是SVG? SVG 指的是可伸缩矢量图形 (Scalable Vector Graphics),它用来定义...
    nightZing阅读 17,119评论 11 62
  • 一、什么是SVG? SVG指可伸缩矢量图形(Scalable Vector Graphics); SVG用来定义用...
    清心挽风阅读 1,418评论 1 3