換了新工作,也確定了我未來數(shù)據(jù)可視化的發(fā)展方向。新年第一篇博客,又逢春運(yùn),這篇技術(shù)文章就來交給大家如何做一個(gè)酷炫的遷徙圖(支持移動哦)。(求star 代碼點(diǎn)這里)
遷徙圖的制作思路分為靜態(tài)的元素和變換的動畫。其中動畫是圍繞著靜態(tài)的元素變換,所以我們首要的任務(wù)就是如何繪制靜態(tài)的元素。
仔細(xì)看一下,靜態(tài)的元素分為弧線(Arc)、弧線端點(diǎn)的箭頭(Marker),動畫部分主要是弧線終點(diǎn)向脈沖波一樣的圓(Pulse),以及像流星一樣的動態(tài)小箭頭和弧線的光暈,這兩個(gè)我們放在一起成為Spark。我們可以看到Spark主要在弧線上運(yùn)動,如果你仔細(xì)觀察一下會發(fā)現(xiàn)終點(diǎn)處點(diǎn)頭的指向也是朝著終點(diǎn)處的切線方向,所以我們把主要的任務(wù)放在如何根據(jù)兩個(gè)點(diǎn)繪制一段弧線。
我們要繪制這段弧線就要知道圓心和半徑,而數(shù)學(xué)定理告訴我們的是三點(diǎn)定圓,過兩個(gè)點(diǎn)的圓有無數(shù)個(gè),所以我們只能找一個(gè)比較合適的圓。
所以現(xiàn)在的問題變成了已知兩點(diǎn)pointF和pointT,求一個(gè)合適的圓心pointC (xc, yc);
根據(jù)pointF和pointT所以我們能夠確定一條直線,他的斜率 kt =(yt - yf)/ (xt - xf);
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26