久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

SVG基礎 | SVG坐標系統和圖形轉換

本文介紹SVG坐標系統和各種SVG圖形轉換知識。svg圖形轉換包括圖形的縮放,移動,傾斜和旋轉。,HTML5中國,中國最大的HTML5中文門戶。
4.jpg

  SVG坐標系統

  坐標系統

  一個普通的笛卡爾坐標系統的坐標原點(0,0)位于左下角位置,X軸方向上向右是正值,向左是負值。Y軸方向上向上是正值,向下是負值。如下圖所示:
2.jpg
  而SVG的坐標系統坐標原點位于左上角,X軸和笛卡爾坐標系的X軸相同,但是Y軸則剛好相反,如果SVG中點或圖形數值增加時往下增長,而不是往上。如下圖所示:
3.jpg
  SVG坐標系統的單位

  你可以指定在SVG坐標系統值1個單位代表什么。如果你沒有明確的指定單位,將會使用像素(px)為單位。下面是SVG元素可以使用的單位:

  •   em:默認的字體大小,通常一個字符的高度
  •   ex:字符x的高度
  •   px:像素
  •   pt:點數,1/72英寸
  •   pc:Picas,1/6英寸
  •   cm:厘米
  •   mm:毫秒
  •   in:英寸

  SVG元素轉換-TRANSFORM屬性

  SVG元素可以被縮放,移動,傾斜和旋轉,就像HTML元素可以使用CSS來轉換一樣。但是因為坐標系統不同,SVG和HTML元素的轉換時有差別的。

  TRANSFORM屬性

  transform用于在一個元素上指定一個或多個轉換效果。它使用一系列預定義的值作為參數,并按先后順序逐一應用到元素上。

  SVG可用的轉換有:旋轉,位移,傾斜和旋轉。SVG的transform屬性和CSS的transform相似,但是它們的參數不同。

  矩陣

  你可以在一個SVG元素上通過matrix()函數來應用一個或多個轉換。矩陣轉換的語法是:
  1. matrix(<a> <b> <c> <d> <e> <f>)           
復制代碼
  上面的聲明指定包含6個參數的矩陣變換。matrix(a,b,c,d,e,f)相當于matrix [a b c d e f]。
 
  位移

  要移動一個SVG元素,你可以使用translate()函數。位移的語法是:
  1. translate(<tx> [<ty>])   
復制代碼

  translate()函數可以帶一個或兩個參數,分別用于表示水平或垂直的位移。

  ty參數是可選的,如果沒有指定,它默認是0。tx和ty參數可以使用空格隔開,也可以使用逗號隔開,還有它們不需要使用單位。它們的單位使用的是用戶坐標系統的單位。

  下面的例子將一個SVG元素向右移動100個用戶單位,向下移動300個用戶單位。
  1. <circle cx="0" cy="0" r="100" transform="translate(100 300)" />  
復制代碼
  上面的轉換代碼也可以寫為:translate(100, 300),使用逗號隔開參數。

  縮放

  你可以使用scale()函數來縮放SVG元素。縮放的語法是:
  1. scale(<sx> [<sy>])      
復制代碼

  scale()函數可以帶一個或兩個參數,分別表示水平或垂直方向上的縮放。

  sy參數是可選值,如果沒有指定,它等于sx的值。sx和sy參數可以使用空格或逗號隔開。并且它們是無單位的數字。

  下面的例子將一個SVG元素放大到原來尺寸的2倍。
  1. <rect width="150" height="100" transform="scale(2)" x="0" y="0" />               
復制代碼

  下面的例子將SVG元素水平方向放大2倍,垂直方向縮小一半。
  1. <rect width="150" height="100" transform="scale(2 0.5)" x="0" y="0" />         
復制代碼

  同樣,我們可以使用逗號來分隔scale()函數的參數,上面的代碼可以寫為:scale(2, .5)。

  這里要注意:當一個SVG元素被縮放的時候,整個當前坐標系統也會被同時縮放,導致元素會在viewport中被重新定位。

  傾斜

  一個SVG元素也可以被傾斜。要傾斜一個SVG元素,你需要使用skewX或skewY函數。語法如下:
  1. skewX(<skew-angle>)
  2. skewY(<skew-angle>)        
復制代碼

  skewX函數指定元素繞X旋轉,skewY函數指定元素繞Y軸旋轉。

  旋轉角度使用的是一個無單位的角度值,默認單位是度(degrees)。

  注意,元素傾斜也可能會是元素在viewport中重新定位。

  旋轉

  你可以使用rotate()函數來旋轉一個SVG元素。語法如下:
  1. rotate(<rotate-angle> [<cx> <cy>])   
復制代碼

  rotate()函數通過rotate-angle來指定旋轉角度。于CSS轉換中的 rotation 不同,你不能為旋轉角度指定單位,只能使用度(degrees)為單位。角度值使用的是無單位的數字,默認單位為:度。

  cx和cy為可選參數,用于代表旋轉的中心點。如果沒有提供cx和cy值,那么旋轉的中心點位于當前用戶坐標系統的原點。

  在rotate()函數中指定中心點就像在CSS中設置transform: rotate()和transform-origin的簡寫方式。由于SVG默認的旋轉中心點位于當前用戶坐標系統的左上角(坐標原點),你創建的旋轉效果可能不是你需要的,這時你就需要指定一個新的旋轉中心點。如果你知道元素的尺寸和位置,你就可以非常容易的為它指定一個旋轉中心點。

  下面的例子在當前用戶坐標系統中將一組SVG元素繞(50,50)中心點旋轉45度。
  1. <g id="parrot" transform="rotate(45 50 50)" x="0" y="0">
  2.     ......
  3. </g>   
復制代碼
  在CSS中,你想讓一個元素繞它的中心旋轉,可以指定旋轉中心點為50% 50%,但是在SVG rotate()中不可以這樣做。你必須使用絕對坐標系統。

  本文版權屬于jQuery之家,轉載請注明出處:http://www.htmleaf.com/ziliaoku/ ... g/201506202075.html

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

由于實際運行環境是在瀏覽器中,因此性能還取決于JavaScript解釋器的效率,指定的FPS幀速在低性能解釋器中可能不會達到,所以這部分不是開發者能夠決定的,開發者能作的是盡可能通
本文將使用HTML5提供的VideoAPI做一個自定義的視頻播放器,需要用到HTML5提供的video標簽、以及HTML5提供的對JavascriptAPI的擴展。,HTML5中國,中國最大的HTML5中文門戶。
隨著 Hybrid 應用的豐富,HTML5 工程師們已經不滿足于把桌面端體驗簡單移植到移動端,他們覬覦移動原生應用人性化的操作體驗,特別是原生應用與生俱來的豐富的手勢系統。HTML5 沒有提
你想要在自己網站上分享一個產品,或者是一個作品集,又或者僅僅只是一個靈感。在你發布到網上之前,你想讓它看起來有吸引力,專業,或者至少得看起來像那么回事。那么你接下
H5廣告,包括H5廣告的設計流程,究竟有什么講究,和階段。為了能幫助更多的人了解H5廣告,我專門做了一個講義。同時,也讓我意外的收到了非常好反饋和認!這是對我的極大鼓勵!我的
本文主要內容有:框架與組件、構建生態、開發技巧與調試、html、css與重構、native/hybrid/桌面開發、前端/H5優化、全棧/全端開發、研究實驗、數據分析與監控、其它軟技能、前端技術網
主站蜘蛛池模板: 成人在线一级片 | 日韩精品在线观看一区二区三区 | 米奇7777狠狠狠狠视频 | 国产精品久久久久久久久免费 | 欧美黄色一区 | 久久久久无码国产精品一区 | 久久久久国产精品 | 亚洲欧美日韩中文字幕一区二区三区 | 一级在线免费观看 | 免费视频一区二区三区在线观看 | 香蕉久久网 | 九九久久精品视频 | 在线观看av不卡 | 国产精品一区二区三区在线 | 一区精品在线观看 | 亚洲三区在线观看 | 日韩在线中文 | 亚洲伊人久久综合 | 欧美精品一区二区三区在线播放 | 日韩一区二区在线视频 | 欧美极品在线播放 | 黄色片在线观看网址 | 女朋友的闺蜜3韩国三级 | 性生生活大片免费看视频 | 乱一性一乱一交一视频a∨ 色爱av | 亚州春色 | www.久久久| 高清一区二区三区 | 色综合网站 | 亚洲一区二区三区视频免费观看 | 日韩在线不卡 | www.色.com | 亚洲欧美自拍偷拍视频 | 日本精品久久 | 欧美8一10sex性hd | 麻豆精品国产91久久久久久 | 国产精品区二区三区日本 | 99精品国产一区二区三区 | 欧美成人一区二区三区 | 欧美在线视频网 | 欧美日韩在线一区二区 |