SVG学习笔记

1.1 svg简介-使用方式

  • 浏览器直接打开
  • 在HTML中使用img标签引用
  • 直接在HTML中使用SVG标签
  • 作为CSS背景

1.2 基本图形和属性

  • 基本图形
    rect(矩形)、circle(圆形)、elipse(椭圆)、line(直线)、polyline(折线)、polygon(多边形)
  • 基本属性
    fill、stroke、stroke-width、transform

1.2.1 rect属性

x、y、width、height、rx、ry

1.2.2 circle属性

cx、cy、r

1.2.2 elipse属性

cx、cy、rx、ry

1.2.3 line属性

x1、x2、y1、y2

1.2.4 填充、描边和变换

fill、stroke、stroke-width、transform

1.3 基本操作API

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

2.1 SVG的世界、视野、视窗的概念

  • width,height-控制视窗
  • svg代码-定义世界
  • viewBox,preserveAspectRatio-控制视野

2.2 SVG中的图形分组

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

2.3 坐标系统概述

  • 笛卡尔直角坐标系
  • 原点
  • 互相垂直的两条数轴
  • 角度定义

2.4 四个坐标系

  • 用户坐标系
    • 世界的坐标系
  • 自身坐标系
    • 每个图形元素或分组独立与生俱来
  • 前驱坐标系
    • 父容器的坐标系
  • 参考坐标系
    • 使用其他坐标系来考究自身的情况时使用

2.5 坐标变换

2.5.1 坐标变换定义

  • svg中,[坐标变换]是对一个坐标系到另一个坐标系的变换的描述

3.1 认识RGB和HSL

3.2 渐变

  • 让图形更丰满
  • 线性渐变和径向渐变

3.2.1 线性渐变

  • 定义方向
  • 关键点位置及颜色
  • gradientUnits

3.2.2 径向渐变

  • 定义方向
  • 关键点位置及颜色gradientUnits
  • 焦点位置

3.3 笔刷

  • 绘制纹理
  • 标签
  • patternUnits和patternContentUnits

4.1 Path概述

  • 强大的绘图工具
  • 规范 https://www.w3.org/TR/SVG11/paths.html

4.1.1 Path概述-Path字符串

<path d="M0,0L10,20C30-10,40,20,100,100" strole="red">

4.1.2 Path概述-命令基本规律

  • 区分大小写:大写表示坐标参数为绝对位置,小写则为相对位置
  • 最后的参数表示最终要到达的位置
  • 上一个命令结束的位置就是下一个命令开始的位置
  • 命令可以重复参数表示重复执行同一条命令

4.2 移动和直线命令

  • M(x,y)+ 移动画笔,后面如果有重复参数,会当做是L命令处理
  • L(x,y)+ 绘制直线到指定位置
  • H(x)+ 绘制水平线到指定的x位置
  • V(y)+ 绘制竖直线到指定的y位置
  • m、l、h、v使用相对位置绘制