一篇文章教會(huì)你使用SVG 畫(huà)多邊形
大家好,我是前端進(jìn)階者。
polygon元素定義了一個(gè)由一組首尾相連的直線線段構(gòu)成的閉合多邊形形狀,最后一點(diǎn)連接到第一點(diǎn)。
一、 Polygon 畫(huà)多邊形
簡(jiǎn)單的SVG多邊形:
例
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Document</title>
- <body style="background-color: aqua;">
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <polygon points="10,0 60,0 35,50" style="stroke:#660000; fill:#cc3333;" />
- </svg>
- </body>
- </html>
運(yùn)行后效果如下:
解析:
即使僅列出了3個(gè)點(diǎn),也都繪制了所有3個(gè)面。這是因?yàn)?
這似乎是
二、繪制不規(guī)則四邊形
下面的示例創(chuàng)建一個(gè)四邊的多邊形:
下面是SVG代碼:
- <!DOCTYPE html>
- <html>
- <body style="background-color: aqua;">
- <svg height="250" width="500">
- <polygon points="220,10 300,210 170,250 123,234" style="fill:lime;stroke:purple;stroke-width:1" />
- </svg>
- </body>
- </html>
三、繪制六邊形
代碼如下:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Document</title>
- <body style="background-color: aqua;">
- <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;">
- <polygon points="60,20 100,40 100,80 60,100 20,80 20,40" />
- </svg>
- </body>
- </html>
運(yùn)行效果如下:
四、八邊形
8個(gè)邊的多邊形(八邊形):
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Document</title>
- <body style="background-color: aqua;">
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <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>
- </body>
- </html>
運(yùn)行效果如下:
五、SVG 畫(huà)五角星
案例
使用
代碼如下:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Document</title>
- <body style="background-color: aqua;">
- <svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320">
- <polygon points="100,10 40,180 190,60 10,60 160,180" style="fill:red; stroke:purple; stroke-width:5;fill-rule:nonzero;"/>
- </svg>
- </body>
- </html>
運(yùn)行后效果如下:
改變 fill-rule 屬性為 "evenodd":
下面是SVG代碼:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Document</title>
- <body style="background-color: aqua;">
- <svg height="210" width="500">
- <polygon points="100,10 40,198 190,78 10,78 160,198" style="fill:red;stroke:purple;stroke-width:5;fill-rule:evenodd;" />
- </svg>
- </body>
- </html>
運(yùn)行效果:
六、總結(jié)
本文基于Htm基礎(chǔ),介紹了如何去畫(huà)多邊形,通過(guò)Polygon元素變換參數(shù)畫(huà)不一樣的的多邊形。(四邊形,如六邊形,八邊形等等),最后重點(diǎn)講解了如何去畫(huà)五角星,講解畫(huà)五角星時(shí)需要注意的點(diǎn),在轉(zhuǎn)換過(guò)程中,改變 fill-rule 屬性繪制不一樣的五角星圖像。通過(guò)豐富的案例分析,希望讀者能夠更好的去理解和學(xué)習(xí)。
歡迎大家積極嘗試,有時(shí)候看到別人實(shí)現(xiàn)起來(lái)很簡(jiǎn)單,但是到自己動(dòng)手實(shí)現(xiàn)的時(shí)候,總會(huì)有各種各樣的問(wèn)題,切勿眼高手低,勤動(dòng)手,才可以理解的更加深刻。
代碼很簡(jiǎn)單,希望對(duì)你學(xué)習(xí)有幫助。