SVG 座標系統
繪製任何圖形都必須位於一個座標系中。
很多操作由於過於常態化,反而沒有意識到。
如同蘋果落地,如果沒有刻意強調或者過人的探究精神,誰會意識到萬有引力在起作用。
看如下CSS程式碼效果圖示:
上述程式碼將紅色div元素水平垂直居中在父div中。
很顯然,div必須處於一個座標系中,否則無法定位。
同理,SVG繪圖也必須位於一個座標系中,下面對其座標系統進行一下介紹。
SVG座標系統分為兩類:
(1).視口座標系統。
(2).使用者座標系統。
關於視窗內容可以參閱SVG viewport視窗和畫布一章節。
比如通過<svg>元素即可建立一個視口,看如下程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> svg { background-color: #ccc; } </style> </head> <body> <svg x="10" y="10" width="200" height="130"> <rect x="50" y="20" width="100" height="100" fill="blue"/> </svg> </body> </html>
程式碼執行效果截圖如下:
程式碼分析如下:
(1).通過<svg>元素建立一個視口,隨之建立一個視口座標系。
(2).建立視口座標系的同時,也會建立一個使用者座標系,此時兩個座標系重合。
(3).最後在此使用者座標系中建立一個藍色矩形。
SVG中的座標系,大致圖示如下:
特別說明:此圖是借用網路上一張常用圖片,不知道最初它的出處,所以無法標註引用地址。
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> svg { background-color: #ccc; } </style> </head> <body> <svg> <rect x="20" y="20" width="100" height="100" fill="blue" transform="rotate(10)"/> </svg> </body> </html>
程式碼執行效果截圖如下:
上述程式碼通過transform將藍色矩形旋轉一定角度。
從表面上看,是將矩形本身旋轉了一定角度,我想很多初學者也是這麼認為。
然而實質是,真正被旋轉的不是矩形本身,而是矩形所在的使用者座標系。
對於元素的縮放、斜切或者旋轉其實都是對座標系的操作,這時,使用者座標系與視口座標系分離了。
上面是對座標系的一些簡單介紹,更多內容參閱如下兩篇文章:
(1).SVG transform 詳解一章節。
(2).SVG transform座標變化深入理解一章節。
相關文章
- SVG座標系統和transformation徹底理解SVGORM
- 理解SVG座標系統和變換: transform屬性SVGORM
- 理解SVG座標系統和變換: 建立新視窗SVG
- 理解SVG transform座標變換SVGORM
- OpenGL 座標系統詳解
- 理解SVG座標系和變換:視窗,viewBox和preserveAspectRatioSVGView
- 深入理解SVG座標體系和transformations- viewport, viewBox,preserveAspectRatioSVGORMView
- svg06——svg中座標變換與順序的關係SVG
- 公路座標計算系統 1.0
- 形象化理解笛卡爾座標系和極座標系
- 座標系的生成
- Qt中QGraphicsView三種座標系統詳解QTView
- canvas座標系原點Canvas
- canvas 座標系原點Canvas
- 地心地固座標系(ECEF)與站心座標系(ENU)的轉換
- 招聘—軟體系統架構師,座標北京知春路架構
- OpenGL ES on iOS --- 座標系統與矩陣轉換iOS矩陣
- Qt - 座標系及轉換QT
- 機器人工具座標系標定原理機器人
- C++ opencv的圓轉矩形,極座標轉笛卡爾座標系C++OpenCV
- CAD夢想畫圖如何自定義座標系統
- 將座標系統儲存為一個檔案.prj
- WebGL座標系的小祕密Web
- android自定義View——座標系AndroidView
- 【matplotlib 實戰】--平行座標系
- 座標系相關知識科普
- 使用AxisHelper幫助理解View and Data API中的座標系統ViewAPI
- 類似淘票票 選座功能(svg)SVG
- 螢幕座標、裝置座標以及邏輯座標的區別
- OpenGL座標系與幾何變換
- 安卓自定義View基礎:座標系安卓View
- 座標系CM和ZONE的區別
- MoseEvent 中的幾種座標系
- vue 實現高德座標轉GPS座標Vue
- 世界座標系到攝像機座標系的矩陣變換推導過程矩陣
- 流體力學守恆形式Euler方程(笛卡爾座標、柱座標、球座標)
- OpenGL入門第三課--矩陣變換與座標系統矩陣
- ogre世界座標魚螢幕座標相互轉換