【問答】用SVG矢量圖形自定義不規則控件——中國地圖

1、提出問題

在必問上有一位同學提出了關於不規則項的繪製問題,具體可參照如下鏈接:https://biwen.csdn.net/question/3399

2、分析問題

■ 筆者的分析:
由於指定的圖形爲不規則的,同時需要根據數據對不規則項設置不同的顏色,滑動到不同的不規則項還需要改變背景色。其中的不規則,就需要開發者去繪製去自定義。

在做複雜的自定義動畫的時候,我們的開發者會先定義Path來規劃動畫的路徑。然後再在不同的節點去設置動畫。本例中其實也可以參照這個思想去解決問題。矢量圖標SVG其實就是定義多個PathData繪製圖形的。

■ SVG
在解決問題之前,我們準備一下關於SVG的知識:
https://www.w3school.com.cn/svg/index.asp

由於我們需要解析路徑數據PathData,先了解一下:

  • M = moveto(M X,Y) :將畫筆移動到指定的座標位置
  • L =lineto(L X,Y) :畫直線到指定的座標位置
  • H = horizontal lineto(H X):畫水平線到指定的X座標位置
  • V = vertical lineto(V Y):畫垂直線到指定的Y座標位置
  • C = curveto(C X1,Y1,X2,Y2,ENDX,ENDY):三次貝賽曲線
  • S = smooth curveto(S X2,Y2,ENDX,ENDY)
  • Q = quadratic Belzier curve(Q X,Y,ENDX,ENDY):二次貝賽曲線
  • T = smooth quadratic Belzier curveto(T ENDX,EN
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章