一篇文章教會(huì)你使用SVG 畫多邊形
點(diǎn)擊上方“前端進(jìn)階學(xué)習(xí)交流”,進(jìn)行關(guān)注
回復(fù)“前端”即可獲贈(zèng)前端相關(guān)學(xué)習(xí)資料
今
日
雞
湯
鏡湖三百里,菡萏發(fā)荷花。大家好,我是前端進(jìn)階者。
polygon元素定義了一個(gè)由一組首尾相連的直線線段構(gòu)成的閉合多邊形形狀,最后一點(diǎn)連接到第一點(diǎn)。<polygon>元素通常用于繪制具有多個(gè)(3個(gè)或更多)側(cè)面/邊緣的形狀。
一、 Polygon 畫多邊形
簡(jiǎn)單的SVG多邊形:
例
<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)?<polygon>元素在所有點(diǎn)之間繪制線,包括從最后一個(gè)點(diǎn)到第一個(gè)點(diǎn)的一條線。該<polyline>不會(huì)從最后一點(diǎn)到第一畫線。
這似乎是<polygon>和 <polyline>元素的唯一區(qū)別。
二、繪制不規(guī)則四邊形
下面的示例創(chuàng)建一個(gè)四邊的多邊形:
下面是SVG代碼:
<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>

三、繪制六邊形
代碼如下:
<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è)邊的多邊形(八邊形):
<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,10550,105 25,80 25, 30" style="stroke:#660000; fill:#cc3333; stroke-width: 3;" /></svg></body></html>
運(yùn)行效果如下:

五、SVG 畫五角星
案例
使用 <polygon> 元素創(chuàng)建一個(gè)星型:
代碼如下:
<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代碼:
<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ǔ),介紹了如何去畫多邊形,通過(guò)Polygon元素變換參數(shù)畫不一樣的的多邊形。(四邊形,如六邊形,八邊形等等),最后重點(diǎn)講解了如何去畫五角星,講解畫五角星時(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í)有幫助。
-------------------?End?-------------------
往期精彩文章推薦:

歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入前端學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群】
萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行
