先看一个实例

<svg xmlns="http://www.w3.org/2000/svg"xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M50,50A30,30 0 0,1 35,20L100,100M110,110L100,0"style="stroke:#660000; fill:none;"/>
</svg>

效果图

看效果图有两条直线和一条曲线 但是代码里面只有一个path 是不是很神奇!
在path 元素中,所有和绘制有关的命令都在d这个属性中
在实例中  M 表示移动画笔的命令
         A 表示用画笔画圆的命令
         L 表示用画笔画直线的命令

设置和移动画笔

在绘制时候,第一个命令永远都是 M 移动命令,你想要绘制任何图形,首先你要移动画笔到某一个地方,M命令就是移动的命令

例如这个例子

<svg xmlns="http://www.w3.org/2000/svg"xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M50,50"style="stroke:#660000; fill:none;"/>
</svg>

这个例子把画笔移动到了50,50这点,下次绘制将从此开始。

画直线

我的智商只会画直线,所以先看看如何画直线

画直线也是在path中最简单的命令,用L或者l就可以画直线

例如

<svg xmlns="http://www.w3.org/2000/svg"xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M50,50L100,100"style="stroke:#660000; fill:none;"/>
</svg>
这个例子从50 50 这点开始画线到100,100这点结束,效果图如下
大些L和小写的L的区别在哪呢
L 是绝对定位
l 是相对定位

绘制中需要移动画笔

绘制的图形总是从上一次结束的那个点开始绘制,链接到新的点,每一个绘制命令都是执行一个绘制命令后,拿到一个结束的点,画笔绘制移动到最后的一个点上,下一次绘制将从这个点开始。

画弧线

通过path 元素画圆,使用命令 A或者a,和画线类似,A表示绝对坐标   a表示 相对坐标

例如

<svg xmlns="http://www.w3.org/2000/svg"xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M50,50A30,50 0 0,1 100,100"style="stroke:#660000; fill:none;"/>
</svg>

结果如下

这个例子 从点 50,50 到点100,100 画了个曲线(圆的一部分)

A30,50 0 0,1 100,100 这几个参数含义的解释

第一个参数:rx (radius in x-direction) x方向的半径

第二个参数:ry (radius in y-direction) y方向的半径

如果两个参数一样的话就是 圆弧  如果不相等就是椭圆弧

第三个参数:x-axis-rotation   个人理解是内弧线还是外弧线,内弧线面积值为0 外弧线值为1

第四个参数:large-arc-flag determines whether to draw the smaller or bigger arc satisfying the start point

第五个参数sweep-flag  个人理解 相对平滑的弧线开关 就是一个圆分两半 选择弧线平滑的方向

代码如下

<path d="M40,20  A30,30 0 0,0 70,70"style="stroke: #cccc00; stroke-width:2; fill:none;"/>
黄色
<path d="M40,20  A30,30 0 1,0 70,70"style="stroke: #ff0000; stroke-width:2; fill:none;"/>
红色
<path d="M40,20  A30,30 0 1,1 70,70"style="stroke: #00ff00; stroke-width:2; fill:none;"/>
绿色<path d="M40,20  A30,30 0 0,1 70,70"style="stroke: #0000ff; stroke-width:2; fill:none;"/>
蓝色

效果如下

太复杂了晕了。。。。

还有更复杂的,我看晕了。。。

http://tutorials.jenkov.com/svg/path-element.html

转载于:https://www.cnblogs.com/qqloving/p/4455540.html

[翻译svg教程]Path元素 svg中最神奇的元素!相关推荐

  1. Python基础教程:为元组中的每一个元素命名

    1.原因: 当存储一个学生信息的时候使用字典是十分方便的,例如下面这样: student = {'name' : "小明",'sex' : 'Man','tel' : '12345 ...

  2. html块状元素和内联元素_HTML中的内联元素和块元素-解释

    html块状元素和内联元素 块和内联元素 (Block and Inline Elements) Let's understand block and inline elements using th ...

  3. html4废弃了哪些元素,HTML中的一些废弃元素_html

    如果我们在进行css网页布局的时候,还在使用被W3C废弃的元素,那就失去了使用CSS的意义,虽然它们可能同样被样式控制. 在Xhtml中不再使用HTML中的一些废弃元素.它们主要有以下一些. Elem ...

  4. matlab 合并相同元素,matlab中删除相邻相同元素

    matlab中删除相邻相同元素 关注:126  答案:2  手机版 解决时间 2021-03-06 01:51 提问者你說.你愛我 2021-03-05 20:49 A=[zx as cd cd re ...

  5. java中map删除指定元素_Map中根据条件删除元素

    今天在写程序过程中,需要根据判断条件删除一个Map中的相应数据,我自然而然想到可以通过调用Map中的remove(Object key)函数进行删除:代码如下: public Map processM ...

  6. hashmap移除元素_JAVA中HashMap如何删除元素

    HashMap删除元素根据其遍历方式一般有两种方法,实例演示如下:一.采用foreach模式,适用于不需要修改HashMap内元素的遍历,只需要获取元素的键/值的情况.1.遍历如下:2.此时删除Has ...

  7. python list 去除元素_python中如何删除list元素?

    我们在使用微博的时候,看到关注的内容,会评论加入这件事的讨论.但是随着事态的发现,你可能会发现自己的言论不正确,你会选择删除.删除在我们生活中是很常见的事情,谁都不希望错误发生,一旦发生,就要删除改正 ...

  8. html中表单元素_HTML中的表单元素

    html中表单元素 1)<input>元素 (1) The <input> Element) The <input> element is used to get ...

  9. java list 遍历 删除元素_java中List遍历删除元素相关做法和注意事项

    首先,使用简单的for循环时,list.remove()肯定是没问题的,只要注意一下下标别越界就行. 示例代码: List ll = new ArrayList(); ll.add("1&q ...

  10. 分答项目_知识点:如何获取jquery选择器生成的input元素数组中的每个input元素的值?

    我最初的想法: (1)jquery选择器获取后将dom元素放到attachnew中了,在遍历数组中可以attachnew[i].value属性即可获取input元素的值: (2)此处用的attachn ...

最新文章

  1. DNN模块开发入门指导
  2. Android Bundle类,通过bundle实现在两个activity之间的通讯
  3. 安装MyEclipse得心得
  4. iOS 音频视频图像合成那点事
  5. 常州新北区华为云_常州高新区召开大数据时代健康产业创新大会
  6. 聚能聊每周精选 第二十一期
  7. ArcEngine10.1二次开发错误: 无法嵌入互操作类型,请改用适用的接口
  8. c语言实用教程第四版pdf,C语言大学实用教程(第4版)
  9. 485通讯线是几芯的_RS485通讯线是几芯电缆
  10. Adobe Flash Player历史版本下载
  11. mysql geometry查询返回值_使用MySQL的geometry类型处理经纬度距离问题的方法
  12. win10 office提示‘VBE6EXT.OLB不能被加载‘怎么办
  13. BigDecimal的round模式
  14. git进阶 | 03 -如何彻底删除git中的大文件
  15. python实现检查邮箱格式是否正确,并检查提交的文件格式是否正确
  16. 期望、方差的线性关系证明
  17. 印象笔记:部分Mac用户因为故障而丢失数据
  18. Couldnt load module input, no modules loaded
  19. Chatbot-检索式模型介绍(三)
  20. 常用传感器讲解十八--爆震传感器感器(KY-031)

热门文章

  1. Fingersmith---指匠情挑
  2. [Tip]ActiveScaffold本地化
  3. patterns practices Security Guidance for Applications Index
  4. YBT 2.4 AC自动机
  5. C#复习笔记(2)--C#1所搭建的核心基础
  6. JAVA环境变量安装
  7. JQuery 补充
  8. 关于scrollTop
  9. laravel 分页带参数
  10. java 世界中Annotation