许多字母命令(例如:M m)(但不是全部)成对。有一个大写和一个小写版本。大写版本是绝对版本,小写是相对版本。让我们继续以M为例:

  • M 100,100 意思是“拿起笔并将其移动到确切的坐标100,100”
  • m 100,100 的意思是“将笔100向下移动100和从你现在的任何地方向右移动100”。
  • 大小字母绝对坐标,小写字母相对坐标

许多命令具有相同的设置。“笔”当前位置的小写版本因素。【每一个点 2个值, 负数向反方向走】

Mx,y 移动到绝对坐标x,y
mx,y 向右移动x并向下移动y(如果为负值,则向左移动并向上移动)
Lx,y 绘制一条直线到绝对坐标x,y
lx,y 绘制一条直线,指向相对正确的x和向下y的点(或者如果为负值,则向上并向上)
Hx 水平画一条直线到确切的坐标x
hx 相对于右侧x水平绘制一条线(如果为负值,则向左侧绘制一条线)
Vy 垂直绘制一条直线到确切的坐标y
vy 垂直相对向下画一条线(如果是负值,则向上画一条线)
Z(或z 画一条直线回到路径的开始处(从当前位置到起点画一条直线闭合)

C命令需要三点。前两个点定义了两个贝塞尔曲线手柄的位置,三点中的最后一点是曲线的终点。

S(或s)命令是与C类似命令,它需要2个,因为它假设第一贝塞尔点是从最后一个S或C命令的最后一个Bezier点的反映。(右)

1.如果S命令跟在一个C命令或者另一个S命令的后面,它的第一个控制点,就会被假设成前一个控制点的对称点。

2.如果S命令单独使用,前面没有C命令或者另一个S命令,那么它的两个控制点就会被假设为同一个点。

Q命令它需要两个点。它想要的贝塞尔点是一个“二次曲线”控制点。就好像它的起点和终点在控制句柄结束的地方共享一个点。(左)

T命令Q命令的简写命令。与S命令相似,T也会通过前一个控制点,推断出一个新的控制点。

  1.T命令前面必须是一个Q命令,或者是另一个T命令。

  2.如果T单独使用,那么控制点就会被认为和终点是同一个点,所以画出来的将是一条直线。

A命令可能是最复杂的,或者至少需要最多的数据。你可以给它定义一个椭圆的宽度,高度,椭圆旋转方式以及终点的信息。允许不闭合。可以想像成是椭圆的某一段,共七个参数。

 参数:rx,ry x-axis-rotation large-arc-flag sweep-flag x,y

RX,RY指所在椭圆的半轴大小( 弧的半长轴长度, 弧的半短轴长度)
 XROTATION指椭圆的X轴与水平方向顺时针方向夹角,可以想像成一个水平的椭圆绕中心点顺时针旋转XROTATION的角度(是此段弧所在的x轴与水平方向的夹角,即x轴的逆时针旋转角度,负数代表顺时针旋转角度)。
 FLAG1只有两个值,1表示大角度弧线,0为小角度弧线。
 FLAG2只有两个值,确定从起点至终点的方向,1为顺时针,0为逆时针
 X,Y为终点坐标; 这个2个觉得着椭圆的大小

然后获得更多有关沿着该椭圆的哪条路径的信息,您希望获得该路径:

有两个可能的路径椭圆和两个不同的椭圆路径,给出四条可能的路径。

第一个参数是大弧标志。它只是确定弧线是否应该大于或小于180度; 最后,这个标志决定弧线将围绕给定的圆周运行的方向。

第二个参数是扫描标志。它确定弧线是否应该开始以负角度或正角度移动,这基本上会选择您将要绕行的两个圆圈中的哪一个。

CcX1,cY1 cX2,cY2 eX,eY 绘制基于两个贝塞尔控制点的贝塞尔曲线,并在指定坐标处结束
C 与所有相对值相同
ScX2,cY2 eX,eY 基本上,假定第一个贝塞尔控制点的C命令是前一个S或C命令中最后一个贝塞尔点的反映
s 与所有相对值相同
QcX,cY eX,eY 根据单个贝塞尔控制点绘制贝塞尔曲线,并在指定坐标处结束
q 与所有相对值相同
TeX,eY 基本上,假设第一个贝塞尔控制点的Q命令是前一个Q或T命令中使用的最后一个贝塞尔点的反映
t 与所有相对值相同
ARX,RY旋转,弧,扫,EX,EY 绘制一条基于椭圆形曲线的弧线。首先定义椭圆的宽度和高度。然后是椭圆形的旋转。随着终点,这使得两个可能的椭圆。所以弧和扫描是0或1,并确定哪个椭圆和哪条路径。
a 与eX,eY的相对值相同

M = moveto(M X,Y) :将画笔移动到指定的坐标位置

L = lineto(L X,Y) :画直线到指定的坐标位置

H = horizontal lineto(H X):画水平线到指定的X坐标位置

V = vertical lineto(V Y):画垂直线到指定的Y坐标位置

C = curveto(C X1,Y1,X2,Y2,ENDX,ENDY):三次贝赛曲线

S = smooth curveto(S X2,Y2,ENDX,ENDY)

Q = quadratic Belzier curve(Q X,Y,ENDX,ENDY):二次贝赛曲线

T = smooth quadratic Belzier curveto(T ENDX,ENDY):映射

A = elliptical Arc(A RX,RY,XROTATION,FLAG1,FLAG2,X,Y):弧线

Z = closepath():关闭路径

编辑路径:http://jxnblk.com/paths/

svg 说明使用:https://css-tricks.com/svg-path-syntax-illustrated-guide/  #英语不好,可以谷歌浏览器打开

https://www.sitepoint.com/closer-look-svg-path-data/

svg 其他一些生成路径地址:https://juejin.im/entry/59b5e629f265da065f047ad6

svg 其他工具 http://developer.51cto.com/art/201508/488797.htm

svg path 路径的更多相关文章

  1. SVG Path路径使用(一)

    一.<path> 标签 <path> 标签用来定义路径. 下面的命令可用于路径数据: M = moveto L = lineto H = horizontal lineto V ...

  2. 5分钟看懂svg path 路径的所有命令(更有API解释、有图、有图文对比解析)

    友情提示:更多详情.每个命令的例子.参数变化对比图文详解,欢迎关注九十七度的博客:SVG<Path>命令详解 M = moveto M x y 移动到指定坐标,xy分别为x轴和y轴的坐标点 ...

  3. SVG PATH 生成器

    参考网站:http://dayu.pw/svgcontrol/ 主要功能:手动可视化生成 SVG图片PATH路径. 效果如下: 代码如下: <!DOCTYPE html> <!-- ...

  4. SVG 学习<八> SVG的路径——path(2)贝塞尔曲线命令、光滑贝塞尔曲线命令

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

  5. SVG 学习<七> SVG的路径——path(1)直线命令、弧线命令

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

  6. SVG 可伸缩矢量图形 简介 Path路径

    w3school:http://www.w3school.com.cn/svg/svg_intro.asp  SVG 意为可缩放矢量图形(Scalable Vector Graphics). SVG ...

  7. svg(1) path路径

    注: 笔记来自于http://www.jb51.net/html5/72250.html  以及http://blog.csdn.net/u013291076/article/details/2707 ...

  8. SVG矢量绘图 path路径详解(贝塞尔曲线及平滑)

    以二次贝塞尔曲线的公式为例: js函数: //p0.p1.p2三个点,其中p0为起点,p2为终点,p1为控制点 //它们的坐标用数组表示[x,y] //t的范围是0-1 function qBerzi ...

  9. d3.js path路径

    转自:http://www.d3js.cn/?p=68 svg的path标签被称为”可以组成任何形状的形状” SVG Path可以绘制任何形状的图形,包括矩形,圆形,椭圆,折线,多边形,直线,曲线等. ...

随机推荐

  1. Delphi 询问框 汉化

    Delphi 询问框 汉化 d:\program files (x86)\embarcadero\studio\17.0\source\fmx\FMX.Consts.pas add this file ...

  2. Python 学习之---文件目录处理

    前言:有关文件夹与文件的查找,删除等功能 在 os 模块中实现.使用时需先导入这个模块, 导入的方法是:import os   一.取得当前目录 s = os.getcwd() s 中保存的是当前目录 ...

  3. 部署和调优 1.7 samba 部署和优化-1

    Samba服务可以实现linux上共享一个目录,windows上面访问. 安装 yum install -y samba samba-client 配置文件在 vim /etc/samba/smb.c ...

  4. Navicat断网时连不上数据库

    最近安装了破解的Navicat,在有网的条件下可以连接本地安装的MySQL数据库,但断网之后就不可以,如下: 于是上网查资料,发现原因为: localhost可以看成是一个域名,在一大部分情况下,它能 ...

  5. Tomcat 不能正常启动

    启动过程提示: Stopping ProtocolHandler ["http-bio-8080"] the JRE_HOME environment variable is no ...

  6. css水平居中(一)

    第一种方法:使用text-align属性. 看到一篇博客,也不知道是不是我理解的问题,博客上说text-align可以是内联元素水平居中,我感觉这样的说法是不是有些不准确. text-align属性规 ...

  7. js分页demo

    纯js实现分页   原理:所有数据已加载好,js通过遍历部分显示,实现分页效果 html代码 <html> <head> <meta charset='utf-8'> ...

  8. Linux之Ubuntu环境配置(一)

    Linux下的搜狗输入法安装: 1.搜狗官网下载Linux64bit版本文件,默认在/home/username/Downloads目录下. 2.cd /home/username/Downloads ...

  9. Contset Hunter 1102 高精度求卡特兰数

    用递推的方式写的写挂了,而如果用组合数又不会高精度除法,偶然看到了别人的只用高精度乘低精度求组合数的方法,记录一下 #include<bits/stdc++.h> using namesp ...

  10. C++实现筛选法

    筛选法 介绍: 筛选法又称筛法,是求不超过自然数N(N>1)的所有质数的一种方法.据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274-194年)发明的,又称埃拉托斯特尼筛子. ...