架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5820|回复: 0

SVG矢量绘图 path路径详解(基本画法)

[复制链接]
发表于 2017-8-14 13:15:15 | 显示全部楼层 |阅读模式
SVG的形状标签里,path是最强大的一个,掌握了path就足够处理常见的绘图问题了。
先看一下path标签的基本用法:

<path d="M100,100 L200,200 L200,400" fill="#333" stroke="#000" />

path标签通过属性d来定义路径,定义信息由一段字符串构成,另外path也可以通过fill和stroke属性来定义填充和边框。
d属性的信息其实并不复杂,由字母和数字构成,数字表示坐标点,字母负责表示如何连接这些坐标点。比如上面的示例中,M表示起点,L表示直线连接,所以d的信息可以这样解读:

M100,100    ->    以(100,100)坐标点为起点
L200,200    ->    从(100,100)向(200,200)画一条直线
L200,400    ->    从(200,200)向(200,400)画一条直线

在path标签的d属性中,一共有10个命令可以使用,下面5个命令是基础,比较简单。

M     移动到(moveTo)    x,y    开始点坐标
Z    闭合路径(closepath)    将路径的开始和结束点用直线连接
L    直线(lineTo)    x,y    当前节点到指定(x,y)节点,直线连接
H    水平直线    x    保持当前点的y坐标不变,x轴移动到x,形成水平线
V    垂直直线    y    保持当前点的x坐标不变,y轴移动到y,形成垂直线

M和L

再看一个M和L的例子

<path d="M30,30 L170,30 L30,170 L170,170"></path>



从A点(30,30)开始,直线画向B点(170,30),再直线到C点(30,170),再直线到D点(170,170),最终形成了Z型的路径。

填充效果,以及Z

<path d="M30,30 L170,30 L30,170 L170,170 M170,90 L190,90 L190,110 L170,110Z" fill="yellow"></path>




这段路径描述中有两个M,所以就在一个path中,出现了两个相对独立的路径,第一个路径和上面的例子一样,是Z字型。
第二个路径则是一个矩形,描述中出现了Z命令,表示将这段路径的开头和结尾连接起来。
另外,这里我们给路径定义了fill属性,可以看到,无论路径是否闭合,fill都会生效。

H和V

最后看一下H和V两个命令,实际上就是在x或y轴不变时,L命令的简写,所以下面两端描述,画出的图是一样的。
<path d="M30,30 L170,30 L30,170 L170,170 M170,90 L190,90 L190,110 L170,110Z" fill="yellow"></path>
<path d="M30,30 H170    L30,170 H170     M170,90 H190    V110     H170Z" fill="yellow"></path>





上一篇:angularjs设置mqtt客户端,获取数据
下一篇:网站建设测试阶段要做的事情
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-3-29 06:45

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表