最新赞助活动温馨提示:自愿赞助服务器费用,学生和没有工作的整站资源免费下载!
头像

SVG基础|绘制SVG直线、折线和多边形-H5教程

来源:http://www.erdangjiade.com/topic/133967.html H5程序员 2017-10-22 21:49浏览(86)

SVG基础|绘制SVG直线、折线和多边形

SVG直线

SVG <line>元素用于绘制一条。下面是一个绘制直线的例子。

<svg xmlns="http://www.w3.org/2000/svg">
  <line x1="0"  y1="10" x2="0"   y2="100" style="stroke:#006600;"/>
  <line x1="10" y1="10" x2="100" y2="100" style="stroke:#006600;"/>
  <line x1="20" y1="10" x2="100" y2="50"  style="stroke:#006600;"/>
  <line x1="30" y1="10" x2="110" y2="10"  style="stroke:#006600;"/>
</svg>

上面代码的返回结果如下:

923.png

x1和y1属性用于指定直线的起点,x2和y2属性用于指定直线的终点。可以使用style属性来为直线设置颜色和描边宽度。

SVG折线

<polyline>元素用于绘制SVG折线。所谓折线就是多条衔接的直线。看下面的例子:

<svg xmlns="http://www.w3.org/2000/svg">
  <polyline points="0,0  30,0  15,30"
        style="stroke:#006600;"/>
</svg>

上面代码的返回结果如下:

924.png

折线由多个点来定义。每一个点都有x和y属性。上面的例子中有三个点,它们组成了一个三角形。这3个点被直线连接,并被填充。默认的填充颜色是黑色。下面的例子中使用其它颜色来进行填充。

<svg xmlns="http://www.w3.org/2000/svg">  
  <polyline points="10,2  60,2  35,52"
        style="stroke:#006600; stroke-width: 2;
               fill: #33cc33;"/>
</svg>

925.png

你会发现上面的三角形只有两条边被填充了描边色,原因是只有两点之间的线会被使用描边色绘制出来。上面的代码中没有一个点指向起点。如果需要三条边都被绘制出来,还需要一个点来指向起点位置。

<svg xmlns="http://www.w3.org/2000/svg">
  <polyline points="10,2  60,2  35,52  10,2"
        style="stroke:#006600; fill: #33cc33;"/>
</svg>

926.png

和SVG直线一样,可以使用style属性来为折线设置颜色和描边宽度。

SVG多边形

<polygon>元素用于绘制SVG多边形。多边形是指三条或三条边以上的几何图形。看下面的SVG三角形的例子:

<svg xmlns="http://www.w3.org/2000/svg">
  <polygon points="10,0  60,0  35,50"
         style="stroke:#660000; fill:#cc3333;"/> 
</svg>

927.png

使用<polygon>元素,虽然只有三个点,但是你会发现三条边都会被绘制出来。这是因为<polygon>元素会绘制各个点之间的所有直线,包括最后一个点指向第一个点的直线。这是<polygon>元素和code><polyline>元素的唯一不同之处。

我们可以绘制更多条边的几何图形,下面是一个八边形的例子:

<svg xmlns="http://www.w3.org/2000/svg">
  <polygon points="50,5   100,5  125,30  125,80 100,105
                   50,105  25,80  25, 30"
          style="stroke:#660000; fill:#cc3333; stroke-width: 3;"/>
</svg>

928.png

以上就是SVG基础|绘制SVG直线、折线和多边形的内容,更多相关内容请关注PHP中文网(www.erdangjiade.com)!

评论0
头像

友情提示:垃圾评论一律封号 加我微信:826096331拉你进VIP群学习群

1 2