欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁(yè) > 知識(shí)庫(kù) > HTML5之SVG 2D入門(mén)2—圖形繪制(基本形狀)介紹及使用

HTML5之SVG 2D入門(mén)2—圖形繪制(基本形狀)介紹及使用

熱門(mén)標(biāo)簽:洛陽(yáng)市伊川縣地圖標(biāo)注中心官網(wǎng) 高德地圖標(biāo)注錯(cuò)誤怎么修改 標(biāo)準(zhǔn)智能外呼系統(tǒng) 江蘇高頻外呼系統(tǒng)線路 電銷(xiāo)機(jī)器人視頻 平頂山電子地圖標(biāo)注怎么修改 會(huì)聲會(huì)影怎樣做地圖標(biāo)注效果 地圖標(biāo)注自己去過(guò)的地方 搜狗星級(jí)酒店地圖標(biāo)注

基本形狀
SVG提供了很多的基本形狀,這些元素可以直接使用,這一點(diǎn)比canvas好多了。廢話不說(shuō)了,直接看例子,這個(gè)最直接:

復(fù)制代碼
代碼如下:

<svg width="200" height="250">
<rect x="10" y="10" width="30" height="30" stroke="black" fill="transparent" stroke-width="5"/>
<rect x="60" y="10" rx="10" ry="10" width="30" height="30" stroke="black" fill="transparent" stroke-width="5"/>
<circle cx="25" cy="75" r="20" stroke="red" fill="transparent" stroke-width="5"/>
<ellipse cx="75" cy="75" rx="20" ry="5" stroke="red" fill="transparent" stroke-width="5"/>
<line x1="10" x2="50" y1="110" y2="150" stroke="orange" fill="transparent" stroke-width="5"/>
<polyline points="60 110 65 120 70 115 75 130 80 125 85 140 90 135 95 150 100 145"
stroke="orange" fill="transparent" stroke-width="5"/>
<polygon points="50 160 55 180 70 180 60 190 65 205 50 195 35 205 40 190 30 180 45 180"
stroke="green" fill="transparent" stroke-width="5"/>
<path d="M20,230 Q40,205 50,230 T90,230" fill="none" stroke="blue" stroke-width="5"/>
</svg>

這段HTML顯示的結(jié)果如下:


 

這個(gè)例子畫(huà)了很多形狀:正常的矩形,帶圓角的矩形,圓形,橢圓形,直線,折線,多邊形,還有路徑。這些都屬于基本的圖形元素。雖然繪制一個(gè)圖形有很多種方式,比如矩形可以用rect實(shí)現(xiàn),也可以用path等實(shí)現(xiàn),但是我們還是應(yīng)該盡量保持SVG的內(nèi)容短小精悍,易于閱讀。 

下面是每個(gè)形狀的使用說(shuō)明(這里只介紹控制圖形形狀和位置的基本屬性,填充等屬性放到后面總結(jié))。

矩形 - rect元素
這個(gè)元素有6個(gè)控制位置和形狀的屬性,分別是:
x:矩形左上角的坐標(biāo)(用戶(hù)坐標(biāo)系)的x值。
y:矩形左上角的坐標(biāo)(用戶(hù)坐標(biāo)系)的y值。
width:矩形寬度。
height:矩形高度。
rx:實(shí)現(xiàn)圓角效果時(shí),圓角沿x軸的半徑。
ry:實(shí)現(xiàn)圓角效果時(shí),圓角沿y軸的半徑。
比如上面例子中,實(shí)現(xiàn)了圓角效果,你也可以通過(guò)設(shè)置rx,ry為不同的值實(shí)現(xiàn)橢圓角效果。

圓 - circle元素
這個(gè)元素的屬性很簡(jiǎn)單,主要是定義圓心和半徑:
r:圓的半徑。
cx:圓心坐標(biāo)x值。
cy:圓心坐標(biāo)y值。

橢圓 - ellipse元素
這個(gè)是更加通用的圓形元素,你可以分別控制半長(zhǎng)軸和半短軸的長(zhǎng)度,來(lái)實(shí)現(xiàn)不同的橢圓,很容易想到,當(dāng)兩個(gè)半軸相等時(shí),就是正圓形了。
rx:半長(zhǎng)軸(x半徑)。
ry:半短軸(y半徑)。
cx:圓心坐標(biāo)x值。
cy:圓心坐標(biāo)y值。

直線 - line元素
直線需要定義起點(diǎn)與終點(diǎn)即可:

x1:起點(diǎn)x坐標(biāo)。
y1:起點(diǎn)y坐標(biāo)。
x2:終點(diǎn)x坐標(biāo)。
y2:終點(diǎn)y坐標(biāo)。

折線 - polyline元素
折線主要是要定義每條線段的端點(diǎn)即可,所以只需要一個(gè)點(diǎn)的集合作為參數(shù):

points:一系列的用空格,逗號(hào),換行符等分隔開(kāi)的點(diǎn)。每個(gè)點(diǎn)必須有2個(gè)數(shù)字:x值和y值。所以下面3個(gè)點(diǎn) (0,0), (1,1)和(2,2)可以寫(xiě)成:"0 0, 1 1, 2 2"。

多邊形 - polygon元素
這個(gè)元素就是比polyline元素多做一步,把最后一個(gè)點(diǎn)和第一個(gè)點(diǎn)連起來(lái),形成閉合圖形。參數(shù)是一樣的。
points:一系列的用空格,逗號(hào),換行符等分隔開(kāi)的點(diǎn)。每個(gè)點(diǎn)必須有2個(gè)數(shù)字:x值和y值。所以下面3個(gè)點(diǎn) (0,0), (1,1)和(2,2)可以寫(xiě)成:"0 0, 1 1, 2 2"。

路徑 - path元素
這個(gè)是最通用,最強(qiáng)力的元素了;使用這個(gè)元素你可以實(shí)現(xiàn)任何其他的圖形,不僅包括上面這些基本形狀,也可以實(shí)現(xiàn)像貝塞爾曲線那樣的復(fù)雜形狀;此外,使用path可以實(shí)現(xiàn)平滑的過(guò)渡線段,雖然也可以使用polyline來(lái)實(shí)現(xiàn)這種效果,但是需要提供的點(diǎn)很多,而且放大了效果也不好。這個(gè)元素控制位置和形狀的只有一個(gè)參數(shù):
d:一系列繪制指令和繪制參數(shù)(點(diǎn))組合成。

繪制指令分為絕對(duì)坐標(biāo)指令和相對(duì)坐標(biāo)指令兩種,這兩種指令使用的字母是一樣的,就是大小寫(xiě)不一樣,絕對(duì)指令使用大寫(xiě)字母,坐標(biāo)也是絕對(duì)坐標(biāo);相對(duì)指令使用對(duì)應(yīng)的小寫(xiě)字母,點(diǎn)的坐標(biāo)表示的都是偏移量。 

絕對(duì)坐標(biāo)繪制指令
這組指令的參數(shù)代表的是絕對(duì)坐標(biāo)。假設(shè)當(dāng)前畫(huà)筆所在的位置為(x0,y0),則下面的絕對(duì)坐標(biāo)指令代表的含義如下所示:

指令 參數(shù) 說(shuō)明
M x y 將畫(huà)筆移動(dòng)到點(diǎn)(x,y)
L x y 畫(huà)筆從當(dāng)前的點(diǎn)繪制線段到點(diǎn)(x,y)
H 畫(huà)筆從當(dāng)前的點(diǎn)繪制水平線段到點(diǎn)(x,y0)
V 畫(huà)筆從當(dāng)前的點(diǎn)繪制豎直線段到點(diǎn)(x0,y)
A rx ry x-axis-rotation large-arc-flag sweep-flag x y 畫(huà)筆從當(dāng)前的點(diǎn)繪制一段圓弧到點(diǎn)(x,y)
C x1 y1, x2 y2, x y 畫(huà)筆從當(dāng)前的點(diǎn)繪制一段三次貝塞爾曲線到點(diǎn)(x,y)
S x2 y2, x y 特殊版本的三次貝塞爾曲線(省略第一個(gè)控制點(diǎn))
Q x1 y1, x y  繪制二次貝塞爾曲線到點(diǎn)(x,y)
T x y 特殊版本的二次貝塞爾曲線(省略控制點(diǎn))
Z 無(wú)參數(shù) 繪制閉合圖形,如果d屬性不指定Z命令,則繪制線段,而不是封閉圖形。

移動(dòng)畫(huà)筆指令M,畫(huà)直線指令:L,H,V,閉合指令Z都比較簡(jiǎn)單;下面重點(diǎn)看看繪制曲線的幾個(gè)指令。

繪制圓弧指令:A  rx ry x-axis-rotation large-arc-flag sweep-flag x y
用圓弧連接2個(gè)點(diǎn)比較復(fù)雜,情況也很多,所以這個(gè)命令有7個(gè)參數(shù),分別控制曲線的的各個(gè)屬性。下面解釋一下數(shù)值的含義:
rx,ry 是弧的半長(zhǎng)軸、半短軸長(zhǎng)度
x-axis-rotation 是此段弧所在的x軸與水平方向的夾角,即x軸的逆時(shí)針旋轉(zhuǎn)角度,負(fù)數(shù)代表順時(shí)針轉(zhuǎn)動(dòng)的角度。
large-arc-flag 為1 表示大角度弧線,0 代表小角度弧線。
sweep-flag 為1代表從起點(diǎn)到終點(diǎn)弧線繞中心順時(shí)針?lè)较颍? 代表逆時(shí)針?lè)较颉?br />x,y 是弧終端坐標(biāo)。
前兩個(gè)參數(shù)和后兩個(gè)參數(shù)就不多說(shuō)了,很簡(jiǎn)單;下面就說(shuō)說(shuō)中間的3個(gè)參數(shù):
x-axis-rotation代表旋轉(zhuǎn)的角度,體會(huì)下面例子中圓弧的不同:

復(fù)制代碼
代碼如下:

<svg width="320px" height="320px">
<path d="M10 315
L 110 215
A 30 50 0 0 1 162.55 162.45
L 172.55 152.45
A 30 50 -45 0 1 215.1 109.9
L 315 10" stroke="black" fill="green" stroke-width="2" fill-opacity="0.5"/>
</svg>

上面的HTML畫(huà)出下面的圖形:

 
從圖中可以看到橢圓旋轉(zhuǎn)參數(shù)的不同導(dǎo)致繪制的圓弧方向不同,當(dāng)然這個(gè)參數(shù)對(duì)正圓來(lái)說(shuō)沒(méi)有影響。

large-arc-flag和sweep-flag控制了圓弧的大小和走向,體會(huì)下面例子中圓弧的不同:

復(fù)制代碼
代碼如下:

<svg width="325px" height="325px">
<path d="M80 80
A 45 45, 0, 0, 0, 125 125
L 125 80 Z" fill="green"/>
<path d="M230 80
A 45 45, 0, 1, 0, 275 125
L 275 80 Z" fill="red"/>
<path d="M80 230
A 45 45, 0, 0, 1, 125 275
L 125 230 Z" fill="purple"/>
<path d="M230 230
A 45 45, 0, 1, 1, 275 275
L 275 230 Z" fill="blue"/>
</svg>

這個(gè)HTML繪制了下面的幾幅圖:

 
從上面可以看出,這幾個(gè)參數(shù)其實(shí)是唯一確定一段圓弧需要的參數(shù)。這里也看到,SVG中的圓弧比canvas中的復(fù)雜一些。

繪制三次貝塞爾曲線指令:C  x1 y1, x2 y2, x y          

三次貝塞爾曲線有兩個(gè)控制點(diǎn),就是(x1,y1)和(x2,y2),最后面(x,y)代表曲線的終點(diǎn)。體會(huì)下面的例子:

復(fù)制代碼
代碼如下:

<svg width="190px" height="160px">
<path d="M10 10 C 20 20, 40 20, 50 10" stroke="black" fill="transparent"/>
<path d="M70 10 C 70 20, 120 20, 120 10" stroke="black" fill="transparent"/>
<path d="M130 10 C 120 20, 180 20, 170 10" stroke="black" fill="transparent"/>
<path d="M10 60 C 20 80, 40 80, 50 60" stroke="black" fill="transparent"/>
<path d="M70 60 C 70 80, 110 80, 110 60" stroke="black" fill="transparent"/>
<path d="M130 60 C 120 80, 180 80, 170 60" stroke="black" fill="transparent"/>
<path d="M10 110 C 20 140, 40 140, 50 110" stroke="black" fill="transparent"/>
<path d="M70 110 C 70 140, 110 140, 110 110" stroke="black" fill="transparent"/>
<path d="M130 110 C 120 140, 180 140, 170 110" stroke="black" fill="transparent"/>
</svg>

這個(gè)HTML片段繪制了下面的圖形:

 從上面我們可以看到,控制點(diǎn)控制了曲線的弧度。

特殊版本的三次貝塞爾曲線:S  x2 y2, x y

很多時(shí)候,為了繪制平滑的曲線,需要多次連續(xù)繪制曲線。這個(gè)時(shí)候,為了平滑過(guò)渡,常常第二個(gè)曲線的控制點(diǎn)是第一個(gè)曲線控制點(diǎn)在曲線另外一邊的映射點(diǎn)。這個(gè)時(shí)候可以使用這個(gè)簡(jiǎn)化版本。這里要注意的是,如果S指令前面沒(méi)有其他的S指令或C指令,這個(gè)時(shí)候會(huì)認(rèn)為兩個(gè)控制點(diǎn)是一樣的,退化成二次貝塞爾曲線的樣子;如果S指令是用在另外一個(gè)S指令或者C指令后面,這個(gè)時(shí)候后面這個(gè)S指令的第一個(gè)控制點(diǎn)會(huì)默認(rèn)設(shè)置為前面的這個(gè)曲線的第二個(gè)控制點(diǎn)的一個(gè)映射點(diǎn),體會(huì)一下:

復(fù)制代碼
代碼如下:

<svg width="190px" height="160px">
<path d="M10 80 C 40 10, 65 10, 95 80 S 150 150, 180 80" stroke="black" fill="transparent"/>
</svg>

這個(gè)HTML片段繪制如下圖形:

上面的S指令只有第二個(gè)控制點(diǎn),第一個(gè)控制點(diǎn)采用了前面的曲線指令的第二個(gè)控制點(diǎn)的一個(gè)映射點(diǎn)。


繪制二次貝塞爾曲線指令:Q  x1 y1, x y , T x y  (特殊版本的二次貝塞爾曲線)
二次貝塞爾曲線只有一個(gè)控制點(diǎn)(x1,y1),通常如下圖所示:

如果是連續(xù)的繪制曲線,同樣可以使用簡(jiǎn)化版本T。同樣的,只有T前面是Q或者T指令的時(shí)候,后面的T指令的控制點(diǎn)會(huì)默認(rèn)設(shè)置為前面的曲線的控制點(diǎn)的映射點(diǎn),體會(huì)一下:

復(fù)制代碼
代碼如下:

<svg width="190px" height="160px">
<path d="M10 80 Q 52.5 10, 95 80 T 180 80" stroke="black" fill="transparent"/>
</svg>

這個(gè)HTML片段繪制如下圖形:

 
同樣的,如果T指令前面不是Q或者T指令,則認(rèn)為無(wú)控制點(diǎn),畫(huà)出來(lái)的是直線。

相對(duì)坐標(biāo)繪制指令
與絕對(duì)坐標(biāo)繪制指令的字母是一樣的,只不過(guò)全部是小寫(xiě)表示。這組指令的參數(shù)中涉及坐標(biāo)的參數(shù)代表的是相對(duì)坐標(biāo),意思就是參數(shù)代表的是從當(dāng)前點(diǎn)到目標(biāo)點(diǎn)的偏移量,正數(shù)就代表向軸正向偏移,負(fù)數(shù)代表向反向偏移。不過(guò)對(duì)Z指令來(lái)說(shuō),大小寫(xiě)沒(méi)有區(qū)別。

這里要注意,絕對(duì)坐標(biāo)指令與相對(duì)坐標(biāo)指令是可以混合使用的。有時(shí)混合使用可以帶來(lái)更靈活的畫(huà)法。

SVG path繪制注意事項(xiàng):
繪制帶孔的圖形時(shí)要注意:外層邊的繪制需要是逆時(shí)針順序的,里面的洞的邊的順序必須是順時(shí)針的。只有這樣繪制的圖形填充效果才會(huì)正確。

實(shí)用參考:
腳本索引:http://msdn.microsoft.com/zh-cn/library/ff971910(v=vs.85).aspx
開(kāi)發(fā)中心:https://developer.mozilla.org/en/SVG
熱門(mén)參考:http://www.chinasvg.com/
官方文檔:http://www.w3.org/TR/SVG11/

標(biāo)簽:廣東 松原 蚌埠 廣西 阿克蘇 鄂爾多斯 果洛 常德

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《HTML5之SVG 2D入門(mén)2—圖形繪制(基本形狀)介紹及使用》,本文關(guān)鍵詞  HTML5,之,SVG,入門(mén),圖形,繪制,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《HTML5之SVG 2D入門(mén)2—圖形繪制(基本形狀)介紹及使用》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于HTML5之SVG 2D入門(mén)2—圖形繪制(基本形狀)介紹及使用的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
    • <abbr id="w000q"></abbr>
      <rt id="w000q"></rt>
      深夜视频在线观看| 精品精品欲导航| 日韩美女久久久| 国产大陆精品国产| 国产午夜精品久久久久久久久| 日韩欧美综合一区| 日韩黄色在线观看| 亚洲综合自拍网| 制服丝袜av成人在线看| 亚洲午夜久久久久久久久电影网| 91在线云播放| 欧美日韩国产免费| 午夜不卡在线视频| 小毛片在线观看| 欧美一区二区三区电影| 免费人成在线不卡| 免费看91的网站| 欧美激情中文不卡| 成人18精品视频| 色老头久久综合| 一区二区三区精品视频在线| 99精品热视频| 欧美亚洲动漫制服丝袜| 亚洲图片欧美综合| 亚洲黄色免费在线观看| 精品精品国产高清a毛片牛牛| 久草精品在线观看| 日韩精品久久久久久久的张开腿让| 国产视频一区二区在线观看| 成人综合婷婷国产精品久久蜜臀| 日本青青草视频| 亚洲黄色免费电影| 国产熟女高潮一区二区三区 | 影音先锋男人资源在线观看| 国产视频在线观看一区二区三区| 国产成人免费视频一区| 在线观看欧美黄色| 五月天一区二区| 国产伦精品一区二区三区视频女| 欧美激情综合五月色丁香小说| 不卡一区在线观看| 欧美日韩大陆一区二区| 日本特黄久久久高潮| 日本在线观看网址| 亚洲欧美另类久久久精品| 亚洲美女高潮久久久| 日韩女优av电影在线观看| 九九精品视频在线看| 黄色一级大片在线免费观看| 亚洲精品国产精品乱码不99| 女人被狂躁c到高潮| 日本一区二区高清| 人妻av一区二区三区| 欧美成人福利视频| 成人app在线观看| 91精品国产色综合久久久蜜香臀| 国产美女久久久久| 欧美性受xxxx| 精品一区二区三区在线播放视频| 亚洲天堂黄色片| 秋霞国产午夜精品免费视频| 日韩福利小视频| 日韩成人av影视| 色综合久久天天| 蜜臀av在线播放一区二区三区| 破处女黄色一级片| 日本不卡一二三区黄网| 色综合 综合色| 另类欧美日韩国产在线| 在线亚洲一区观看| 国产在线一区观看| 欧美男人的天堂一二区| 国产精品一级片在线观看| 欧美日韩国产小视频在线观看| 国产在线视频一区二区| 欧美人妇做爰xxxⅹ性高电影| 国产不卡一区视频| 日韩亚洲欧美成人一区| 91美女福利视频| 久久久美女毛片| 国产51自产区| 中文字幕av一区二区三区免费看 | 粉嫩av亚洲一区二区图片| 欧美影视一区二区三区| 国产精品一区二区黑丝| 欧美岛国在线观看| 国产sm在线观看| 国产精品护士白丝一区av| 国产jk精品白丝av在线观看| 亚洲一区二区三区四区的| 熟女av一区二区| 精品一二三四在线| 日韩一区二区在线看| 成人午夜精品在线| 久久美女艺术照精彩视频福利播放| 在线观看一区二区三区四区| 国产精品国产精品国产专区不片| 日本少妇高潮喷水xxxxxxx| 亚洲成va人在线观看| 一本色道久久综合亚洲精品按摩| 国产一区二区三区四区五区入口 | 国产精品久久久久桃色tv| mm131美女视频| 亚洲成人福利片| 在线亚洲欧美专区二区| 成人美女在线观看| 欧美高清在线一区| 99热6这里只有精品| 麻豆精品在线观看| 日韩午夜av电影| 欧美日韩一区二区三区四区五区六区| 综合色天天鬼久久鬼色| 国产色无码精品视频国产| 国产在线精品一区二区不卡了| 精品女同一区二区| 日本黄色网址大全| 美女一区二区在线观看| 欧美一级一区二区| 精品中文字幕在线播放| 日日夜夜免费精品| 91麻豆精品国产无毒不卡在线观看| 女同性αv亚洲女同志| 亚洲一区二区三区三| 欧美日韩的一区二区| 无码人妻aⅴ一区二区三区玉蒲团| 一区二区三区在线视频观看| 在线视频你懂得一区| www.日韩精品| 亚洲视频免费观看| 在线亚洲一区观看| 欧美图片自拍偷拍| 亚洲不卡一区二区三区| 91精品国产综合久久久久久| 午夜男人的天堂| 蜜桃在线一区二区三区| 欧美精品一区二区三区一线天视频| 91成人在线免费视频| 精品制服美女久久| 国产欧美精品一区| 人妻人人澡人人添人人爽| 不卡av在线免费观看| 亚洲综合激情另类小说区| 51午夜精品国产| 无码人妻精品一区二区三应用大全| 男女男精品视频网| 久久综合久久鬼色中文字| 欧美日韩生活片| 粉嫩av一区二区三区在线播放 | 国产精品久久久久精k8 | 日韩a级片在线观看| www.综合网.com| 夜夜操天天操亚洲| 日韩一区二区电影| 综合 欧美 亚洲日本| 不卡一区在线观看| 亚洲成人动漫精品| 久久这里只有精品首页| 可以免费看av的网址| 欧美激情一区二区三区四区| 99久久99久久精品国产| 久草福利在线观看| 奇米影视一区二区三区| 国产亚洲一本大道中文在线| 色哟哟国产精品免费观看| 人妻互换一二三区激情视频| 日本中文字幕一区| 国产欧美久久久精品影院| 欧美在线观看视频在线| 国产精品边吃奶边做爽| 国产精品亚洲视频| 亚洲一区在线免费观看| 久久久久免费观看| 欧美做爰猛烈大尺度电影无法无天| 日本免费福利视频| 风间由美一区二区av101 | 精品国产伦一区二区三区免费| 男人av资源站| 中文字幕在线永久| 国产成a人无v码亚洲福利| 亚洲成人免费影院| 中文字幕精品一区二区精品绿巨人 | 日韩一级片网站| 日本aⅴ在线观看| 特大黑人巨人吊xxxx| 成人天堂资源www在线| 婷婷夜色潮精品综合在线| 国产人成亚洲第一网站在线播放| 欧美日韩一二三区| 貂蝉被到爽流白浆在线观看| 日批免费观看视频| 国产成人三级在线观看| 婷婷成人综合网| 亚洲日本va午夜在线影院| 日韩视频在线你懂得| 日本韩国精品在线| 国精产品一区一区| 插我舔内射18免费视频| 成人精品国产一区二区4080 | 欧美午夜不卡在线观看免费| 精品成人无码一区二区三区|