进入SVG

作者: 桃花島主 | 来源:发表于2018-10-07 11:42 被阅读7次

SVG-简单示例

code

rect


code

circle


code

ellipse


code

line


code

polyline


code

polygon


code

填充、描边、变换

基本操作API

  • 创建图形
document.createElementNS(ns, tagName)
  • 添加图形
element.appendChild(childElement)
  • 设置/获取属性
element.setAttribute(name, value)
element.getAttribute(name)

svg综合运用的小例子svg-editor

SVG的世界、视野、视窗

定义

  • 世界就是无限大的,无穷无尽
  • 视野是coder编写的所有的代码
  • 视窗浏览器开辟出来用于渲染SVG内容的一个区域
  • code中所设置的宽高都是设置在视窗上的

描述

  • SVG代码-定义世界
  • width,height-控制视窗[看世界的一扇窗户],
  • viewBox,preserveAspectRatio-控制视野[我们能看到世界大小的一种能力]
    视野越广阔,看到的内容越丰富,单个物体的内容越小,跟屏幕分辨率一个道理
    理想情况下,视野和视窗有一样的尺寸
    不一样的情况,就需要填充策略preserveAspectRatio
<svg xmlns="..."
width="800" height="600" viewBox="0 0 400 300" preserveAspectRatio="xMidYMid meet">
<!--SVG Content-->
</svg>

视窗

g演变过程

锤子-1


SVG中的图形分组

  • <g>标签来创建分组
  • 属性继承
  • transform属性定义坐标变换
  • 可以嵌套使用

    锤子-2

svg坐标系

4个坐标系

  • 用户坐标系(User Coordinate)
    世界的坐标系


  • 自身坐标系(Current Coordinate)
    每个图形元素或分组独立与生俱来


  • 前驱坐标系(Previous Coordinate)
    父容器的坐标系


  • 参考坐标系(Reference Coordinate)
    使用其它坐标系来考究自身的情况时使用


坐标变换

线性变换

旋转

缩放

线性变换列表

transform属性

  • 前驱坐标系:父容器坐标系
  • transform属性:定义前驱坐标系到自身坐标系的线性变换
  • 语法:
rotate(<deg>)
translate(<x>,<y>)
scale(<sx>,<sy>)
matrix(<a>,<b>,<c>,<d>,<e>,<f>)

调色面板

在SVG中应用颜色

<rect fill="rgb(255,0,0)" opacity="0.5" />
<rect stroke="hsla(0,50%,60%,0.5) />"

线性渐变

  • <linearGradient>和<stop>
  • 定义方向
  • 关键点位置及颜色
  • gradientUnits

    code

    使用自身的坐标
<svg xmlns="http://www.w3.org/2000/svg" width="400" height="350">
  <defs>
    <linearGradient id="grad1" gradientUnits="userSpaceOnUse" x1="0" y1="0" x2="1" y2="1">
      <stop offset="0" stop-color="#1497FC" />
      <stop offset="0.5" stop-color="#A469BE" />
      <stop offset="1" stop-color="#FF8C00" />
    </linearGradient>
  </defs>
  <rect x="100" y="100" fill="url(#grad1)" width="200" height="150" />
</svg>

<svg xmlns="http://www.w3.org/2000/svg" width="400" height="350">
  <defs>
    <linearGradient id="grad1" gradientUnits="userSpaceOnUse" x1="100" y1="100" x2="150" y2="150">
      <stop offset="0" stop-color="#1497FC" />
      <stop offset="0.5" stop-color="#A469BE" />
      <stop offset="1" stop-color="#FF8C00" />
    </linearGradient>
  </defs>
  <rect x="100" y="100" fill="url(#grad1)" width="200" height="150" />
</svg>

code

径向渐变

  • <radialGradient>和<stop>
  • 定义方向
  • 关键点位置及颜色
  • gradientUnits
  • 焦点位置

    code
<svg xmlns="http://www.w3.org/2000/svg" width="400" height="350">
  <defs>
    <radialGradient id="grad2" cx="0.5" cy="0.5" r="0.5" fx="0.6" fx="0.3">
      <stop offset="0" stop-color="rgb(20,151,252)" />
      <stop offset="0.5" stop-color="rgb(164,105,190)" />
      <stop offset="1" stop-color="rgb(255,140,0)" />
    </radialGradient>
  </defs>
  <rect x="100" y="100" fill="url(#grad2)" width="200" height="150" />
</svg>

笔刷

  • 绘制纹理
  • <pattern>标签
  • patternUnits和patternContentUnits
<svg xmlns="http://www.w3.org/2000/svg" width="1000" height="500">
  <defs>
    <pattern id="p1" x="0" y="0" width="0.2" height="0.2">
      <circle cx="10" cy="10" r="5" fill="red"></circle>
      <polygon points="30 10 60 50 0 50" fill="green"></polygon>
    </pattern>
  </defs>
  <rect x="100" y="100" fill="url(#p1)" width="800" height="300" stroke="blue" />
</svg>

code


项目代码

相关文章

  • 进入SVG

    SVG-简单示例 code rect circle ellipse line polyline polygon 填...

  • Android图片之svg

    1.SVG是什么2.SVG优点3.SVG使用4.获取SVG5.封装使用6.SVG动画 1.SVG是什么? SVG(...

  • SVG在iOS开发中的应用

    何为SVG 简言之,svg就是一种二维的矢量图形格式,可以用过Adobe公司的AI来生成。 应用场景 直接进入主题...

  • SVG的使用

    SVG图片 一. SVG介绍 1.1. SVG概念解析 SVG全称: Scalable Vector Graphi...

  • 资源

    SVG svg icon 对应git(node.js写的) svg animation study svg cs...

  • (第六天)HTML5之SVG的了解与使用&Web数据存储

    SVG 什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用...

  • 图标字体制作

    软件:IcoMoon 步骤: 进入右上角icoMoon App 左上角Import Icons,导入svg图标文件...

  • svg standalone

    简单的 SVG 实例 一个简单的SVG图形例子: 这里是SVG文件(SVG文件的保存与SVG扩展): "http:...

  • SVG学习笔记

    SVG学习笔记 简介 SVG使用XML来描述二维图形和绘图程序的语言。 SVG形状 SVG在HTML页面 SVG ...

  • SVG

    Menu SVG 实例 SVG 形状 SVG 实例 SVG 的 用来创建一个圆。cx 和 cy ...

网友评论

    本文标题:进入SVG

    本文链接:https://www.haomeiwen.com/subject/wjflaftx.html