国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

svg的坐標系統

spademan / 2085人閱讀

摘要:發現目前瀏覽器支持的挺強大的,但是本身有很多背景知識和元素屬性以及庫等,如何系統地掌握這一強大工具呢視窗和視野這兩個詞的翻譯還是比較好的你站在屋子里通過窗戶來看外面的世界。的坐標和的最左邊的坐標對齊

最近做一個流程圖繪制項目,所以研究了一下svg。發現svg目前瀏覽器支持的挺強大的,但是svg本身有很多背景知識和元素屬性以及js庫等,如何系統地掌握這一強大工具呢?

viewPort(視窗)和viewBox(視野)

這兩個詞的翻譯還是比較好的!你站在屋子里通過窗戶來看外面的世界。窗戶的大小是固定的,比如是400*200,可外面的世界是無限大的!那是不是你就只能看到窗戶大小般的世界和井底之蛙一般呢?如果真是這樣,那viewBox就沒用了。想想看,如果你里窗戶越遠,是不是看到的越多呢?當你和窗戶津貼成二維平面時,就真的是井底之蛙了。所以viewBox就很有意義了!

    
        
    

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

我們發現上面的寬高屬性沒有單位,所以默認是px.所以我們應該看到的是一塊100px*100px的綠色正方形

但是結果不是我們想要的

首先html width,height屬性如果沒有單位就是px,svg是400*200,沒有問題。

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

結論

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

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

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

怎么理解兩個世界

demo: 1.html


    

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

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

如果這樣的話,因為默認兩個世界的比例是1:1,所以你會看不到所有部分。

preserveAspectRatio屬性

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

viewBox

    
        
        
        svg:200*200
    

如果viewBox width和height等比例縮放的話,這個圖形會相應縮放。

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

preserveAspectRatio包含兩部分:

align

meetOrSlice

這兩個使用請參考這個例子[ViewBox演示]()

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

xMinYMin

xMidYMin

xMaxYMin

xMinYMid

xMidYMid

xMaxYMid

xMinYMax

xMidYMax

xMaxYMax

啊,屬性這么多!

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

xMinYMin 強制等比例縮放,viewBox的min-x坐標值和viewport的最左邊的x對齊。viewBox的min-y坐標和viewport的最左邊的y坐標對齊,

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/49813.html

相關文章

  • SVG精髓》筆記(一)

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

    warkiz 評論0 收藏0
  • SVG相關學習(一)SVG基礎

    摘要:表示應用漸變的元素創建的邊界坐標系統。控制點確定起點終點的斜率終點坐標二次貝塞爾曲線和之前一樣,快捷命令會通過前一個控制點,推斷出一個新的控制點。如果單獨使用,那么控制點就會被認為和終點是同一個點,所以畫出來的將是一條直線。 SVG 相關學習 SVG SVG 指可伸縮矢量圖形 (Scalable Vector Graphics) SVG viewBox viewport svg 實際大...

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

    摘要:元素元素會將其所有子元素作為一個組合,通常組合還會有一個唯一的作為名稱。變換描述按照指定的和值移動用戶坐標系統。比例值可以是小數或則負數和相同按照指定的旋轉用戶坐標。旋轉中心由和指定根據指定的傾斜所有坐標。 3. 文檔結構 在SVG中使用樣式(四種方式,可以聯想對照HTML樣式方法) 內聯樣式, 直接在標簽里設置style屬性 內部樣式表,可以同時為多個元素設置樣式 de...

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

    摘要:元素元素會將其所有子元素作為一個組合,通常組合還會有一個唯一的作為名稱。變換描述按照指定的和值移動用戶坐標系統。比例值可以是小數或則負數和相同按照指定的旋轉用戶坐標。旋轉中心由和指定根據指定的傾斜所有坐標。 3. 文檔結構 在SVG中使用樣式(四種方式,可以聯想對照HTML樣式方法) 內聯樣式, 直接在標簽里設置style屬性 內部樣式表,可以同時為多個元素設置樣式 de...

    entner 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<