[翻译svg教程]Path元素 svg中最神奇的元素!
先看一个实例
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"> <path d="M50,50
A30,30 0 0,1 35,20
L100,100
M110,110
L100,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,50
L100,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,50
A30,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
[翻译svg教程]Path元素 svg中最神奇的元素!的更多相关文章
- [翻译svg教程]svg学习系列 开篇
目录 [翻译svg教程]svg学习系列 开篇 [翻译svg教程 ]svg 的坐标系统 [翻译svg教程]svg 中的g元素 [翻译svg教程]svg中矩形元素 rect [翻译svg教程]svg中的c ...
- [翻译svg教程]svg 中的g元素
svg 中的<g>元素用来组织svg元素.如果一组svg元素被g元素包裹了,你可以通过对g元素进行变换(transform),被g元素包裹的元素也将被变换,就好这些被svg包裹的元素是一个 ...
- SVG格式图片转成HTML中SVG的Path路径
AI图标制作完成之后,保存的svg文件包含许多AI的信息,如果要在HTML中使用,我们需要在svg文件中提取/修改信息,重新保存. 1.在AI中已经完成图标,要保存SVG文件,点击“文件(File)” ...
- SVG 教程
SVG 意为可缩放矢量图形(Scalable Vector Graphics). SVG 使用 XML 格式定义图像. 现在开始学习 SVG! <html> <body> &l ...
- svg矢量图标在html中的使用, (知识点:1.通过h5中的css实现点击变色,2.一个svg文件包含多个图标)
svg矢量文件体积小,不变形,比传统的png先进,比现在流行的icon-font灵活.然而在使用过程中还是遇到了很多坑.今天花了一天时间把经验整理出来,以供后来者借鉴.如果您从本文收益,请留言mark ...
- svg教程
实例 <html> <body> <h1>My first SVG</h1> <svg style="border: 1px solid ...
- SVG路径PATH
SVG路径PATH 在使用之前建议下个PS或者FLASH玩玩里面的钢笔工具(FLASH里的钢笔工具比PS里的好用) PATH用到的指令: M----(X Y):移动到 Z----(none):关闭路径 ...
- 1. svg学习笔记-在网页中使用svg
在网页中使用svg有以下三种方式 1. svg归根结底来说是一种图像格式,虽然有别于jpeg,gif,png等位图图像格式,所以在网页中能嵌入图像的地方都可以嵌入svg,例如将svg文件设置为< ...
- SVG的path的使用
SVG的path的使用: 参考:http://justcoding.iteye.com/blog/2226354 <%@ page language="java" conte ...
随机推荐
- .ashx中使用Session
在一般处理程序中给session赋值是报错:未将对象引用设置到对象的实例.
- 异步select
server coding: #!/usr/bin/python # -*- coding: utf-8 -*- import select import socket import sys impo ...
- 父类div高度适应子类div
父类div高度适应子类div 通常有许多div的高度由子类的高度决定父类的高度,所以需要父类div要适应子类div的高度,一般情况父类的高度可以直接设置成“auto”即可. 在有的情况下,子类div会 ...
- Winform自定义控件基础(一)
1.设置图像和文字以抗锯齿的方式呈现 g.SmoothingMode = SmoothingMode.AntiAlias; g.TextRenderingHint = TextRenderingHin ...
- [MySQL] 分页优化
在传统的分页思路影响下,很多人都形成了对于分页的固定理解,也就是给出select语句,先用count()函数计算出总的条目,除与每个页面大小pagesize,然后用ceil取整,得出总的页数,用lim ...
- websocket与socket.io
什么是Websocket? Websocket是一个独立于http的实时通信协议,最初是在HTML5中被引用进来的,在HTML5规范中作为浏览器与服务器的核心通信技术被嵌入到浏览器中.WebSocke ...
- axure rp8.0 序列号,亲测可以用
转载自:https://zhidao.baidu.com/question/428326076480233092.html aaa 2GQrt5XHYY7SBK/4b22Gm4Dh8alaR0/0k3 ...
- androidstdio偶遇一
android的错误 今天在安装androidstdio的过程中产生了遇到了一个错误(之前一直没有重新安装,因为觉得麻烦,但是电脑慢成狗了,只好重新安装....)那么现在步入正题. 首先安装的 ...
- ios app内嵌入http服务器
1.采用CocoaHTTPServer https://github.com/robbiehanson/CocoaHTTPServer 2.采用MongooseDaemon https://githu ...
- fabric
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # fab test [root@192.168.85.99:22] Executing ...

