成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

svg的坐標(biāo)系統(tǒng)

spademan / 2170人閱讀

摘要:發(fā)現(xiàn)目前瀏覽器支持的挺強(qiáng)大的,但是本身有很多背景知識(shí)和元素屬性以及庫(kù)等,如何系統(tǒng)地掌握這一強(qiáng)大工具呢視窗和視野這兩個(gè)詞的翻譯還是比較好的你站在屋子里通過(guò)窗戶來(lái)看外面的世界。的坐標(biāo)和的最左邊的坐標(biāo)對(duì)齊

最近做一個(gè)流程圖繪制項(xiàng)目,所以研究了一下svg。發(fā)現(xiàn)svg目前瀏覽器支持的挺強(qiáng)大的,但是svg本身有很多背景知識(shí)和元素屬性以及js庫(kù)等,如何系統(tǒng)地掌握這一強(qiáng)大工具呢?

viewPort(視窗)和viewBox(視野)

這兩個(gè)詞的翻譯還是比較好的!你站在屋子里通過(guò)窗戶來(lái)看外面的世界。窗戶的大小是固定的,比如是400*200,可外面的世界是無(wú)限大的!那是不是你就只能看到窗戶大小般的世界和井底之蛙一般呢?如果真是這樣,那viewBox就沒(méi)用了。想想看,如果你里窗戶越遠(yuǎn),是不是看到的越多呢?當(dāng)你和窗戶津貼成二維平面時(shí),就真的是井底之蛙了。所以viewBox就很有意義了!

    
        
    

svg是html標(biāo)簽,類似于canvas,代表上面所說(shuō)的viewPort.這里瀏覽器會(huì)渲染一塊400*200的空白區(qū)域(窗戶)。

我們發(fā)現(xiàn)上面的寬高屬性沒(méi)有單位,所以默認(rèn)是px.所以我們應(yīng)該看到的是一塊100px*100px的綠色正方形

但是結(jié)果不是我們想要的

首先html width,height屬性如果沒(méi)有單位就是px,svg是400*200,沒(méi)有問(wèn)題。

但是里面的rect明明是100*100怎么就變成了200*200

結(jié)論

svg標(biāo)簽包裹的世界(代表是viewBox viewBox="0 0 200 50")和外部html(代表是viewPort width="400" height="200" )的世界不是一體的。

如果上面的svg元素沒(méi)有viewBox和preserveAspectRatio屬性,那viewPort和viewBox的單位像素是1:1的,我們通過(guò)改變viewBox屬性,改變兩個(gè)世界的單位像素比例.

兩個(gè)世界(viewPort和viewBox)的單位像素

怎么理解兩個(gè)世界

demo: 1.html


    

上面是HTML的世界,在這個(gè)世界里,我們可以通過(guò)使用css改變和定位svg(viewPort),這里viewPort就定義成了300*300,代表著svg在HTML世界中只能占據(jù)300*300的空間。

難道我在svg中畫圖只能畫限制在300*300空間的圖嗎?不可能,事實(shí)上我可以畫無(wú)窮大,上面的polygon可以設(shè)置成更大。這個(gè)無(wú)窮大的空間就是svg世界

如果這樣的話,因?yàn)槟J(rèn)兩個(gè)世界的比例是1:1,所以你會(huì)看不到所有部分。

preserveAspectRatio屬性

ViewBox屬性和preserveAspectRatio屬性配合使用。

viewBox

    
        
        
        svg:200*200
    

如果viewBox width和height等比例縮放的話,這個(gè)圖形會(huì)相應(yīng)縮放。

如果width和height不是等比例呢,這時(shí),preserveAspectRatio屬性就起作用了.

preserveAspectRatio包含兩部分:

align

meetOrSlice

這兩個(gè)使用請(qǐng)參考這個(gè)例子[ViewBox演示]()

在viewBox的寬高比和viewport的寬高比不匹配的情況,它的值必須是以下其中一個(gè)

xMinYMin

xMidYMin

xMaxYMin

xMinYMid

xMidYMid

xMaxYMid

xMinYMax

xMidYMax

xMaxYMax

啊,屬性這么多!

但是我只要說(shuō)一個(gè),你就明白了!(不明白的話,在ViewBox演示

xMinYMin 強(qiáng)制等比例縮放,viewBox的min-x坐標(biāo)值和viewport的最左邊的x對(duì)齊。viewBox的min-y坐標(biāo)和viewport的最左邊的y坐標(biāo)對(duì)齊,

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/49813.html

相關(guān)文章

  • SVG精髓》筆記(一)

    摘要:本文是基于精髓一書的簡(jiǎn)單總結(jié),文中的均為該書提供,目的是方便大家使用時(shí)快速查閱。允許指定一個(gè)給定的一組圖形伸展以適應(yīng)特定的容器元素。該屬性的模型為指定軸和位置,由一個(gè)對(duì)齊方式和一個(gè)對(duì)齊方式組合而成。 本文是基于《SVG精髓》一書的簡(jiǎn)單總結(jié),文中的demo均為該書提供,目的是方便大家使用時(shí)快速查閱。 1. 坐標(biāo)系統(tǒng) 視口(viewport):文檔使用的畫布區(qū)域,表示SVG可見(jiàn)區(qū)域的大...

    warkiz 評(píng)論0 收藏0
  • SVG相關(guān)學(xué)習(xí)(一)SVG基礎(chǔ)

    摘要:表示應(yīng)用漸變的元素創(chuàng)建的邊界坐標(biāo)系統(tǒng)??刂泣c(diǎn)確定起點(diǎn)終點(diǎn)的斜率終點(diǎn)坐標(biāo)二次貝塞爾曲線和之前一樣,快捷命令會(huì)通過(guò)前一個(gè)控制點(diǎn),推斷出一個(gè)新的控制點(diǎn)。如果單獨(dú)使用,那么控制點(diǎn)就會(huì)被認(rèn)為和終點(diǎn)是同一個(gè)點(diǎn),所以畫出來(lái)的將是一條直線。 SVG 相關(guān)學(xué)習(xí) SVG SVG 指可伸縮矢量圖形 (Scalable Vector Graphics) SVG viewBox viewport svg 實(shí)際大...

    BingqiChen 評(píng)論0 收藏0
  • SVG精髓》筆記(二)

    摘要:元素元素會(huì)將其所有子元素作為一個(gè)組合,通常組合還會(huì)有一個(gè)唯一的作為名稱。變換描述按照指定的和值移動(dòng)用戶坐標(biāo)系統(tǒng)。比例值可以是小數(shù)或則負(fù)數(shù)和相同按照指定的旋轉(zhuǎn)用戶坐標(biāo)。旋轉(zhuǎn)中心由和指定根據(jù)指定的傾斜所有坐標(biāo)。 3. 文檔結(jié)構(gòu) 在SVG中使用樣式(四種方式,可以聯(lián)想對(duì)照HTML樣式方法) 內(nèi)聯(lián)樣式, 直接在標(biāo)簽里設(shè)置style屬性 內(nèi)部樣式表,可以同時(shí)為多個(gè)元素設(shè)置樣式 de...

    My_Oh_My 評(píng)論0 收藏0
  • SVG精髓》筆記(二)

    摘要:元素元素會(huì)將其所有子元素作為一個(gè)組合,通常組合還會(huì)有一個(gè)唯一的作為名稱。變換描述按照指定的和值移動(dòng)用戶坐標(biāo)系統(tǒng)。比例值可以是小數(shù)或則負(fù)數(shù)和相同按照指定的旋轉(zhuǎn)用戶坐標(biāo)。旋轉(zhuǎn)中心由和指定根據(jù)指定的傾斜所有坐標(biāo)。 3. 文檔結(jié)構(gòu) 在SVG中使用樣式(四種方式,可以聯(lián)想對(duì)照HTML樣式方法) 內(nèi)聯(lián)樣式, 直接在標(biāo)簽里設(shè)置style屬性 內(nèi)部樣式表,可以同時(shí)為多個(gè)元素設(shè)置樣式 de...

    entner 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<