网站地图    收藏   

主页 > 专题教程 > svg >

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

来源:自学PHP网    时间:2018-02-07 18:05 作者: 阅读:

[导读] 本文是html5 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>

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

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

SVG折线

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

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

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

折线由多个点来定义。每一个点都有xy属性。上面的例子中有三个点,它们组成了一个三角形。这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>

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

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

和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>

使用<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>

返回SVG教程目录


    自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

    京ICP备14009008号-1@版权所有www.zixuephp.com

    网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

    添加评论