SVG 直线
SVG(Scalable Vector Graphics)是一种用于描述二维图形的XML语言。在SVG中,<line>
元素用于绘制直线。下面是关于如何使用<line>
元素创建直线的讲解,并附有四个带有详细注释的示例代码。
示例1:简单的水平线
<svg width="200" height="50" xmlns="http://www.w3.org/2000/svg"><!-- 创建一条简单的水平线。x1="0" y1="25": 线条的起点位于SVG画布左边缘0像素处,距离上边缘25像素的位置。x2="200" y2="25": 线条的终点位于SVG画布右边缘200像素处,同样距离上边缘25像素的位置。stroke="red": 设置线条的颜色为红色。--><line x1="0" y1="25" x2="200" y2="25" stroke="red"/>
</svg>
示例2:垂直线
<svg width="50" height="200" xmlns="http://www.w3.org/2000/svg"><!-- 创建一条简单的垂直线。x1="25" y1="0": 线条的起点位于SVG画布距离左边缘25像素处,从上边缘0像素开始。x2="25" y2="200": 线条的终点仍然位于距离左边缘25像素处,但向下延伸至SVG画布底部200像素。stroke="blue": 设置线条的颜色为蓝色。stroke-width="3": 设置线条的宽度为3像素。--><line x1="25" y1="0" x2="25" y2="200" stroke="blue" stroke-width="3"/>
</svg>
示例3:对角线
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg"><!-- 创建一条从左下角到右上角的对角线。x1="0" y1="200": 线条的起点位于SVG画布左下角。x2="200" y2="0": 线条的终点位于SVG画布右上角。stroke="green": 设置线条的颜色为绿色。stroke-width="2": 设置线条的宽度为2像素。--><line x1="0" y1="200" x2="200" y2="0" stroke="green" stroke-width="2"/>
</svg>
示例4:带箭头的线
<svg width="200" height="100" xmlns="http://www.w3.org/2000/svg"><!-- 定义一个标记(marker),用于在线条的终点添加箭头。id="arrow": 标记的唯一标识符。markerWidth="10" markerHeight="7": 定义标记的宽高。refX="10" refY="3.5": 指定标记的参考点,即箭头尖端的位置。orient="auto": 根据线条的方向自动旋转箭头。--><defs><marker id="arrow" markerWidth="10" markerHeight="7" refX="10" refY="3.5" orient="auto"><polygon points="0 0, 10 3.5, 0 7" fill="red"/></marker></defs><!-- 使用定义好的箭头标记。marker-end="url(#arrow)": 指定使用哪个标记作为线条的终点装饰。--><line x1="20" y1="50" x2="180" y2="50" stroke="red" stroke-width="2" marker-end="url(#arrow)"/>
</svg>
每个例子都展示了<line>
元素的不同用法和一些额外的属性,如颜色、宽度以及如何使用标记来创建箭头效果。希望这些例子能够帮助你理解SVG中的直线是如何工作的。
SVG 多边形
SVG(Scalable Vector Graphics)允许通过<polygon>
元素来绘制多边形。多边形是一系列连接的直线段,其起点和终点是相同的,从而形成一个封闭的形状。下面是对如何使用<polygon>
元素创建多边形的讲解,并附有四个带有详细注释的示例代码。
示例1:等边三角形
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg"><!-- 创建一个等边三角形。points属性定义了组成多边形的点序列,每个点由"x,y"表示,多个点之间用空格分隔。这里我们定义了三个点,它们构成了一个底边在下方的等边三角形。--><polygon points="100,25 25,175 175,175" fill="none" stroke="black" stroke-width="2"/>
</svg>
示例2:矩形(非正方形)
<svg width="200" height="150" xmlns="http://www.w3.org/2000/svg"><!-- 使用<polygon>元素创建一个矩形(宽高不相等),即使通常我们会使用<rect>元素来创建矩形。此处的points定义了矩形的四个角的位置,依次为左上、右上、右下、左下。--><polygon points="25,25 175,25 175,125 25,125" fill="yellow" stroke="red" stroke-width="3"/>
</svg>
示例3:五角星
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg"><!-- 创建一个五角星。五角星由五个顶点构成,通过精心选择这些顶点的位置,我们可以创建出一个标准的五角星形状。--><polygon points="100,10 40,198 190,78 10,78 160,198" fill="purple" stroke="white" stroke-width="2"/>
</svg>
示例4:六边形蜂巢图案
<svg width="400" height="200" xmlns="http://www.w3.org/2000/svg"><!-- 创建一系列的六边形以模拟蜂巢图案。我们将重复使用<polygon>元素并调整points属性来定位每一个六边形。注意,这里只展示两个相邻的六边形,实际应用中可以根据需要复制更多的六边形。--><polygon points="50,10 100,10 120,50 100,90 50,90 30,50" fill="orange" stroke="black" stroke-width="1"/><polygon points="150,10 200,10 220,50 200,90 150,90 130,50" fill="orange" stroke="black" stroke-width="1"/>
</svg>
以上示例展示了如何使用<polygon>
元素来创建不同类型的多边形,包括简单的几何图形如三角形和矩形,以及更复杂的形状如五角星和六边形。希望这些例子能够帮助你理解如何使用SVG中的多边形元素。
SVG 多段
SVG <polyline>
元素用于绘制由多个直线段连接成的开放路径。与<polygon>
不同,<polyline>
不封闭路径,因此它适合用来表示折线图、箭头等开放形状。下面是对如何使用<polyline>
元素创建开放路径的讲解,并附有四个带有详细注释的示例代码。
示例1:简单的折线
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg"><!-- 创建一条简单的折线。points属性定义了组成多边形的点序列,每个点由"x,y"表示,多个点之间用空格分隔。这里我们定义了四个点,它们构成了一个开放的折线。--><polyline points="20,20 180,20 180,180 20,180" fill="none" stroke="blue" stroke-width="4"/>
</svg>
示例2:锯齿状线条
<svg width="200" height="100" xmlns="http://www.w3.org/2000/svg"><!-- 使用<polyline>元素创建锯齿状线条。此处的points定义了一系列的点,形成一个重复上升和下降的模式,模仿锯齿状的外观。--><polyline points="10,90 40,10 70,90 100,10 130,90 160,10 190,90" fill="none" stroke="green" stroke-width="2"/>
</svg>
示例3:箭头
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg"><!-- 创建一个指向右侧的箭头。箭头由两个部分组成:一根长线和顶部的三角形尖端。我们可以使用<polyline>来创建这两部分,通过调整points属性中的坐标来形成箭头形状。--><polyline points="50,100 150,100" fill="none" stroke="black" stroke-width="4"/><polyline points="150,80 150,100 170,100" fill="black" stroke="black" stroke-width="4"/>
</svg>
示例4:波浪线
<svg width="400" height="100" xmlns="http://www.w3.org/2000/svg"><!-- 创建一条波浪线。波浪线是通过一系列的点模拟正弦波的形态。你可以调整points属性中各个点的位置来改变波浪的频率和振幅。--><polyline points="10,50 50,70 90,50 130,30 170,50 210,70 250,50 290,30 330,50 370,70" fill="none" stroke="red" stroke-width="2"/>
</svg>
这些例子展示了<polyline>
元素在创建各种开放路径图形时的灵活性。如果你需要创建非封闭的几何形状或者图表,<polyline>
是一个非常有用且直观的工具。希望这些示例能够帮助你更好地理解和使用<polyline>
元素。
SVG 路径
SVG <path>
元素是最强大的绘图元素之一,它允许你定义复杂的形状,包括直线、曲线和弧线。<path>
元素使用一个 d
属性来定义路径数据,该属性包含了绘制路径的指令。下面是对如何使用 <path>
元素创建复杂图形的讲解,并附有四个带有详细注释的示例代码。
示例1:简单的矩形
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg"><!-- 使用<path>绘制一个矩形。'M' 指令表示移动到指定位置而不绘制任何东西(绝对坐标)。'H' 和 'V' 分别表示水平和垂直绘制直线(绝对坐标)。'Z' 指令用于闭合路径,即从当前点画一条直线回到起点。--><path d="M10,10 H190 V190 H10 Z" fill="none" stroke="black" stroke-width="4"/>
</svg>
示例2:贝塞尔曲线
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg"><!-- 创建一个SVG画布,宽度和高度都设定为200px。'xmlns' 属性指定了SVG的命名空间,这是必需的。--><!-- 使用<path>元素绘制一条由两个三次贝塞尔曲线组成的路径。'd' 属性包含了一串指令,这些指令定义了如何绘制路径。'M50,20' - 移动到 (50,20) 点。这是路径的起点,不会创建任何线段。'C50,20 150,20 150,120' - 绘制第一个三次贝塞尔曲线:- 第一个控制点与起始点相同,在 (50,20),这意味着曲线从起点开始是直线。- 第二个控制点位于 (150,20),它影响曲线的形状,但不是路径的一部分。- 终点在 (150,120),这是曲线结束的地方。'S250,220 250,120' - 绘制第二个三次贝塞尔曲线(平滑连续曲线):- 'S' 指令是 'C' 的简化版,它会自动使用上一个控制点的反射点作为当前命令的第一个控制点。- 因此这里只提供了一个控制点 (250,220) 和终点 (250,120)。- 这将创建一条从上一条曲线终点出发,经过给定控制点到达新终点的平滑曲线。fill="none" - 设置填充颜色为无,即不填充路径内部。stroke="blue" - 设置路径线条的颜色为蓝色。stroke-width="4" - 设置路径线条的宽度为4px。--><path d="M50,20 C50,20 150,20 150,120 S250,220 250,120" fill="none" stroke="blue" stroke-width="4"/>
</svg>
示例3:圆弧路径
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg"><!-- 使用<path>绘制一个半圆形弧。'M' 指令移动到起始点 (100, 80)。'A' 指令用于绘制椭圆弧,其参数依次为:- 椭圆的x轴半径和y轴半径(这里是50,50,即一个圆弧)- x轴旋转角度(这里为0)- 大弧标志(0=小弧,1=大弧)- 扫描方向(0=顺时针,1=逆时针)- 终点坐标--><path d="M100,80 A50,50 0 1,0 100,180" fill="none" stroke="green" stroke-width="4"/>
</svg>
示例4:组合路径
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg"><!-- 创建一个由多个路径指令组成的复杂图形。这里我们结合了多种路径指令来创建一个更复杂的形状。包括移动 ('M')、直线 ('L')、水平和垂直线 ('H', 'V')、以及闭合路径 ('Z')。--><path d="M10,10 L90,90 H190 V10 L10,10 Z" fill="yellow" stroke="red" stroke-width="4"/>
</svg>
这些例子展示了 <path>
元素在创建各种复杂形状时的强大功能。通过组合不同的路径指令,你可以创建几乎任何类型的二维图形。