一篇文章教会你使用SVG 画多边形

开发 前端
本文基于Htm基础,介绍了如何去画多边形,通过Polygon元素变换参数画不一样的的多边形。(四边形,如六边形,八边形等等),最后重点讲解了如何去画五角星,讲解画五角星时需要注意的点,在转换过程中,改变 fill-rule 属性绘制不一样的五角星图像。通过丰富的案例分析,希望读者能够更好的去理解和学习。

[[388621]]

大家好,我是前端进阶者。

polygon元素定义了一个由一组首尾相连的直线线段构成的闭合多边形形状,最后一点连接到第一点。 元素通常用于绘制具有多个(3个或更多)侧面/边缘的形状。

一、 Polygon 画多边形

简单的SVG多边形:

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3. <head> 
  4. <meta charset="UTF-8"
  5. <title>Document</title> 
  6.   <body style="background-color: aqua;"
  7.  
  8.  
  9. <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
  10.  
  11. <polygon points="10,0 60,0 35,50" style="stroke:#660000; fill:#cc3333;" /> 
  12. </svg> 
  13.  
  14. </body> 
  15. </html> 

运行后效果如下:

解析:

即使仅列出了3个点,也都绘制了所有3个面。这是因为 元素在所有点之间绘制线,包括从最后一个点到第一个点的一条线。该 不会从最后一点到第一画线。

这似乎是 元素的唯一区别。

二、绘制不规则四边形

下面的示例创建一个四边的多边形:

下面是SVG代码:

  1. <!DOCTYPE html> 
  2. <html> 
  3. <body style="background-color: aqua;"
  4.  
  5. <svg height="250" width="500"
  6. <polygon points="220,10 300,210 170,250 123,234" style="fill:lime;stroke:purple;stroke-width:1" /> 
  7. </svg> 
  8.  
  9. </body> 
  10. </html> 

三、绘制六边形

代码如下:

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3. <head> 
  4. <meta charset="UTF-8"
  5. <title>Document</title> 
  6.     <body style="background-color: aqua;"
  7. <svg width="120" height="120" viewPort="0 0 120 120" version="1.1" xmlns="http://www.w3.org/2000/svg" style="stroke:#660000; fill:#cc3333;"
  8. <polygon points="60,20 100,40 100,80 60,100 20,80 20,40" /> 
  9. </svg> 
  10.  
  11. </body> 
  12. </html> 

运行效果如下:

四、八边形

8个边的多边形(八边形):

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3. <head> 
  4. <meta charset="UTF-8"
  5. <title>Document</title> 
  6.   <body style="background-color: aqua;"
  7. <svg xmlns="http://www.w3.org/2000/svg"           xmlns:xlink="http://www.w3.org/1999/xlink"
  8. <polygon points="50,5   100,5 125,30 125,80 100,105 
  9.                    50,105 25,80 25, 30" style="stroke:#660000; fill:#cc3333; stroke-width: 3;" /> 
  10. </svg> 
  11.  
  12. </body> 
  13. </html> 

运行效果如下:

五、SVG 画五角星

案例

使用 元素创建一个星型:

代码如下:

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3. <head> 
  4. <meta charset="UTF-8"
  5. <title>Document</title> 
  6.     <body style="background-color: aqua;"
  7. <svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320"
  8. <polygon points="100,10 40,180 190,60 10,60 160,180" style="fill:red; stroke:purple; stroke-width:5;fill-rule:nonzero;"/> 
  9. </svg> 
  10.  
  11. </body> 
  12. </html> 

运行后效果如下:

改变 fill-rule 属性为 "evenodd":

下面是SVG代码:

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3. <head> 
  4. <meta charset="UTF-8"
  5. <title>Document</title> 
  6. <body style="background-color: aqua;"
  7. <svg height="210" width="500"
  8. <polygon points="100,10 40,198 190,78 10,78 160,198" style="fill:red;stroke:purple;stroke-width:5;fill-rule:evenodd;" /> 
  9. </svg> 
  10.  
  11. </body> 
  12. </html> 

运行效果:

六、总结

本文基于Htm基础,介绍了如何去画多边形,通过Polygon元素变换参数画不一样的的多边形。(四边形,如六边形,八边形等等),最后重点讲解了如何去画五角星,讲解画五角星时需要注意的点,在转换过程中,改变 fill-rule 属性绘制不一样的五角星图像。通过丰富的案例分析,希望读者能够更好的去理解和学习。

欢迎大家积极尝试,有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。

代码很简单,希望对你学习有帮助。

 

责任编辑:姜华 来源: 前端进阶学习交流
相关推荐

2020-12-01 09:36:35

SVG元素属性

2021-02-19 19:35:53

SVG 形状元素

2021-03-02 18:35:27

SVG开发空间

2021-02-17 20:40:22

SVG图像模式

2019-10-17 19:15:22

jQueryJavaScript前端

2021-12-28 09:27:45

Javascript 高阶函数前端

2020-11-13 08:14:28

JavaScript

2021-05-29 10:20:54

GoModules语言

2023-06-21 00:10:17

JSONWeb服务器JavaScript

2021-09-15 10:00:33

Go语言Modules

2021-02-24 10:14:04

PythonClassPython基础

2020-12-10 08:20:27

Python微博评论

2020-12-16 08:07:28

语言基础反射

2021-12-30 10:28:30

Python 微博评论

2020-12-08 08:09:49

SVG图标Web

2021-02-26 20:01:57

SVG滤镜元素

2020-12-31 08:35:07

Python抖音浏览器

2020-12-23 08:12:08

javascriptSVG脚本SVG元素

2021-01-01 09:18:48

SVG图像元素

2020-12-29 09:39:38

元素属性定位
点赞
收藏

51CTO技术栈公众号