<path>
是SVG中最强大的图形元素之一,它允许你使用一组复杂的命令绘制任意形状的路径。通过路径数据,<path>
可以描述直线、曲线、圆弧、弯曲线等各种复杂图形。相比其他SVG图形元素,<path>
是唯一一个能够绘制复杂自由形状的元素。
目录
基本语法
<path d="命令" fill="填充颜色" stroke="描边颜色" stroke-width="描边宽度" />
d
:定义路径数据,是一个由命令和坐标组成的字符串,指示如何绘制图形。fill
:填充颜色(如果适用),用来设置图形内部的填充颜色。stroke
:路径的边框颜色,控制路径的边框颜色。stroke-width
:路径的边框宽度,单位为像素。
路径命令详解
路径数据d
属性使用一系列命令和坐标。每个命令指定如何绘制路径的一部分。常用的路径命令包括:
- M (moveTo):
- 该命令用于将“画笔”移到指定的坐标,不画出路径。
- 例如:
M 10,10
将画笔移至(10,10)点。
- L (lineTo):
- 该命令用于从当前位置绘制直线到指定的坐标。
- 例如:
L 20,20
从当前位置绘制一条直线到(20,20)。
- H (horizontal lineTo):
- 该命令用于绘制一条水平线到指定的X坐标,Y坐标保持不变。
- 例如:
H 30
绘制一条水平线到X坐标为30的点。
- V (vertical lineTo):
- 该命令用于绘制一条垂直线到指定的Y坐标,X坐标保持不变。
- 例如:
V 40
绘制一条垂直线到Y坐标为40的点。
- C (cubic Bezier curveTo):
- 该命令用于绘制一条三次贝塞尔曲线,指定两个控制点和终点。
- 例如:
C 20,20 40,20 60,40
绘制三次贝塞尔曲线,控制点为(20,20)和(40,20),终点为(60,40)。
- S (smooth cubic Bézier curveTo):
- 该命令用于绘制一条平滑的三次贝塞尔曲线,前一个控制点会被自动推算。
- 例如:
S 80,80 100,100
绘制一条平滑的三次贝塞尔曲线,终点为(100,100),控制点为(80,80)。
- Q (quadratic Bezier curveTo):
- 该命令用于绘制一条二次贝塞尔曲线,指定一个控制点和终点。
- 例如:
Q 20,20 40,40
绘制二次贝塞尔曲线,控制点为(20,20),终点为(40,40)。
- T (smooth quadratic Bézier curveTo):
- 该命令用于绘制一条平滑的二次贝塞尔曲线。
- 例如:
T 50,50
绘制平滑的二次贝塞尔曲线,终点为(50,50)。
- A (elliptical Arc):
- 该命令用于绘制圆弧,指定椭圆的半径、旋转角度、方向标志和弧的大小。
- 例如:
A 10 10 0 0 1 50 50
绘制一个圆弧,半径为(10,10),旋转角度为0,方向标志为0,终点为(50,50)。
- Z (closePath):
- 该命令用于关闭路径,连接当前点与路径的起点,形成一个封闭图形。
示例代码
- 简单直线
<svg width="200" height="200">
<path d="M 10,10 L 100,100 L 200,50" fill="none" stroke="black" stroke-width="2" />
</svg>
- 这个例子绘制了两条连接在一起的直线。路径起始点是(10,10),然后绘制到(100,100)和(200,50),没有填充,边框为黑色,宽度为2像素。
- 贝塞尔曲线
<svg width="200" height="200">
<path d="M 10,80 C 40,10 65,10 95,80 S 150,150 180,80" fill="none" stroke="blue" stroke-width="3" />
</svg>
- 这个例子绘制了一个三次贝塞尔曲线和一个平滑的贝塞尔曲线,边框为蓝色,宽度为3像素。
- 二次贝塞尔曲线
<svg width="200" height="200">
<path d="M 10,80 Q 50,10 90,80 T 170,80" fill="none" stroke="red" stroke-width="2" />
</svg>
- 这个例子绘制了一个二次贝塞尔曲线和一个平滑的二次贝塞尔曲线,边框为红色,宽度为2像素。
- 圆弧
<svg width="200" height="200">
<path d="M 10,80 A 30,30 0 0,1 80,80" fill="none" stroke="green" stroke-width="2" />
</svg>
- 这个例子绘制了一个从(10,80)到(80,80)的圆弧,半径为(30,30),边框为绿色,宽度为2像素。
- 封闭路径
<svg width="200" height="200">
<path d="M 10,10 L 100,100 L 200,50 Z" fill="yellow" stroke="black" stroke-width="2" />
</svg>
- 这个例子绘制了一个封闭的路径,三条边连接起来形成一个三角形,填充颜色为黄色,边框为黑色,宽度为2像素。
- 复杂路径(心形)
<svg width="200" height="200">
<path d="M 10,80 C 20,10 80,10 80,40 C 80,70 40,90 10,80 Z" fill="pink" stroke="black" stroke-width="2" />
</svg>
- 这个例子绘制了一个心形,路径使用了二次贝塞尔曲线和三次贝塞尔曲线,填充颜色为粉色,边框为黑色,宽度为2像素。
参考资料
出站链接
<path>
是SVG图形中最灵活、最强大的元素,它能够通过路径命令实现复杂的形状绘制。无论是直线、曲线、圆弧,还是复杂的自由形状,都可以通过路径数据精确地控制。它在网页设计、图标设计、动画和交互效果中应用广泛,是创建矢量图形的核心工具之一。
发表回复