前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【SVG】Path 路径用法详解

【SVG】Path 路径用法详解

作者头像
Yorkyu
发布2022-03-22 15:46:06
发布2022-03-22 15:46:06
3.1K00
代码可运行
举报
文章被收录于专栏:约克编程技术约克编程技术
运行总次数:0
代码可运行

前言

SVG Path可用于绘制复杂的路径,如创建线条, 曲线, 弧形等等。其所有属性中,属性d是一个“命令+参数”的序列,用于描述路径,Path强大正在于d属性,因此掌握了d属性成了关键。

示例预览

一,d 属性

1.1. 移动位置(M)

1.1.1. 用法

M = moveto(M X,Y) 命令的作用是将画笔移动到指定的坐标位置,具体用法如下:

  • M x,y x和y是绝对坐标,分别代表水平坐标和垂直坐标。
  • m dx,dy dx和dy是相对于当前点的距离,分别是向右和向下的距离

1.1.2. 示例

将画笔移动到绝对位置

代码语言:javascript
代码运行次数:0
运行
复制
<path d="M 50,100" />

将画笔

代码语言:javascript
代码运行次数:0
运行
复制
<path d="m 50,100" />

1.2. 直线(L)

1.1.1. 用法

L = lineto(L X,Y) 命令的作用是画直线到指定的坐标位置,具体用法如下:

  • M x,y x和y是绝对坐标,分别代表水平坐标和垂直坐标。
  • m dx,dy dx和dy分别是向右和向下的距离

1.1.2. 示例

将画笔移动到绝对位置后,并画直线到点B(x=200, y = 300)

1.3. 水平直线(H)

1.3.1. 用法

H = horizontal lineto(H X) 画水平线到指定的X坐标位置,具体用法如下:

  • H x x是绝对坐标,代表水平坐标。
  • H dx dx是向右的距离

1.3.2. 示例

将画笔移动到绝对位置后,并画水平距离100

1.4. 垂直直线(V)

1.3.1. 用法

V = vertical lineto(V Y) 画垂直线到指定的Y坐标位置,具体用法如下:

  • V y y是绝对坐标,代表垂直坐标。
  • V dy dy是向下的距离

1.3.2. 示例

将画笔移动到绝对位置后,并画垂直线到y = 100

1.5. 三次贝赛曲线(C)

1.5.1. 用法

控制点描述的是曲线起始点的斜率,曲线上各个点的斜率,是从起点斜率到终点斜率的渐变过程

C = curveto(C X1,Y1,X2,Y2,ENDX,ENDY) 画三次贝赛曲线,具体用法如下:

  • C x1,y1 x2,y2 x,y (x,y)表示的是曲线的终点,(x1,y1)是起点的控制点,(x2,y2)是终点的控制点。
  • c dx1,dxy dx2,dy2 dx,dy dx1、dy1和dx2、dy2都是相对于初始点,而不是相对于结束点的。dx和dy分别是向右和向下的距离

1.5.2. 示例

将画笔移动到绝对位置后,并绘制三次贝赛曲线

1.5. 二次贝赛曲线(C)

1.5.1. 用法

Q = quadratic Belzier curve(Q X,Y,ENDX,ENDY) 画二次贝赛曲线,具体用法如下:

  • Q x1,y1 x,y (x,y)表示的是曲线的终点,(x1,y1)是起点的控制点。
  • q dx1,dxy dx,dy dx1、dy1是相对于初始点的距离。dx和dy分别是向右和向下的距离

1.5.2. 示例

将画笔移动到绝对位置后,并绘制三次贝赛曲线

1.7. 平滑曲线(S)

1.7.1. 用法

S = smooth curveto(S X1,Y1,ENDX,ENDY) 画平滑曲率,具体用法如下:

  • S x1,y1 x,y (x1,y1)是中间点,(x,y)是终点。
  • s dx1,dy1 dx,dy dx1、dy1是相对于初始点距离。dx和dy分别是向右和向下的距离

1.7.2. 示例

将画笔移动到绝对位置后,并绘制平滑曲线

1.8. 弧线(A)

1.8.1. 用法

A = elliptical Arc(A RX,RY,XROTATION,LargeArcFlag,SweepFlag,X,Y) 画弧线,具体用法如下:

  • A rx,ry XROTATION LargeArcFlag SweepFlag x,y rx和ry分别是x和y方向的半径,而LargeArcFlag的值要到是0要么是1,用来确定是要画小弧(0)还是画大弧(1)。SweepFlag也要么是0要么是1,用来确定弧是顺时针方向(1)还是逆时针方向(0)。x和y是目的地的坐标。
  • a drx,dry XROTATION LargeArcFlag SweepFlag dx,dy dx1、dy1是相对于初始点距离。dx和dy分别是向右和向下的距离

1.8.2. 示例

将画笔移动到绝对位置后,并绘制平滑曲线

1.9. 关闭路径(Z)

1.9.1. 用法

Z = closepath() 连接起点与终点坐标,具体用法如下:

  • Z 用于d属性值末尾

1.9.2. 示例

将画笔移动到绝对位置后,并绘制平滑曲线,最后闭合路径

参考

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年10月31日,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一,d 属性
    • 1.1. 移动位置(M)
      • 1.1.1. 用法
      • 1.1.2. 示例
    • 1.2. 直线(L)
      • 1.1.1. 用法
      • 1.1.2. 示例
    • 1.3. 水平直线(H)
      • 1.3.1. 用法
      • 1.3.2. 示例
    • 1.4. 垂直直线(V)
      • 1.3.1. 用法
      • 1.3.2. 示例
    • 1.5. 三次贝赛曲线(C)
      • 1.5.1. 用法
      • 1.5.2. 示例
    • 1.5. 二次贝赛曲线(C)
      • 1.5.1. 用法
      • 1.5.2. 示例
    • 1.7. 平滑曲线(S)
      • 1.7.1. 用法
      • 1.7.2. 示例
    • 1.8. 弧线(A)
      • 1.8.1. 用法
      • 1.8.2. 示例
    • 1.9. 关闭路径(Z)
      • 1.9.1. 用法
      • 1.9.2. 示例
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档