【D3.js學習總結】22、D3幾何-泰森多邊形
d3.geom.voronoi()
在日常生活中有這樣的場景,在一個城市中有很多的便利店,當你走在城市的任意地方,怎麼才能找到離你了近的便利店呢?這種場景就適合用泰森多邊形來解決。
通過一個示例來展示。
1、資料
var dataset = [[18,162], [114,403], [261,98] ]; //假設這是三家便利店
2、資料轉換
var width = 500;
var height = 500;
var voronoi = d3.geom.voronoi()
.clipExtent([[0, 0], [width, height]]);//從畫面左上角到右下角為顯示區間
var data = voronoi(dataset);
轉換後的資料如圖所示。
通過轉換,將資料變成折線圖的每個頂點座標,這樣我們就可以通過將頂點連線起來組成一個個不規則區域;
3、繪製圖形
生成SVG容器
var svg = d3.select(`body`).append(`svg`)
.attr(`width`,width)
.attr(`height`,height)
顏色比例尺
var color = d3.scale.category10();
生成折線路徑
svg.append("g").selectAll("path")
.data(data)
.enter()
.append("path")
.attr(`fill`,function(d,i){
return color(i);
})
.attr("d", function(d,i){
// 通過d.join("L")方法將每個頂點連線起來
return "M" + d.join("L") + "Z";
});
生成便利店位置
svg.append(`g`).selectAll(`circle`)
.data(dataset)
.enter()
.append(`circle`)
.attr(`cx`, function(d,i){
return d[0];
})
.attr(`cy`, function(d,i){
return d[1];
})
.attr(`r`, 5)
.attr(`fill`,`#fff`)
注意在生成便利店位置時,我們用的資料是原始的資料;
相關文章
- IDL建立泰森多邊形
- 【IDL】 自動構建泰森多邊形(Voronoi Polygon)Go
- [幾何]計算不規則多邊形的面積、中心、重心
- 第九章第九題(幾何:正多邊形)(Geometry: regular polygons)Go
- 視覺化學習:利用向量判斷多邊形邊界視覺化
- OpenGL 學習 05 花托(剔除 深度測試 多邊形模式)模式
- OpenGL 學習 06 多邊形偏移 裁剪 混合 抗鋸齒
- SVG <polygon> 多邊形SVGGo
- opencv多邊形逼近OpenCV
- 【IDL】幾何圖形數學運算函式函式
- 多邊形填充-活動邊表法
- 【學習筆記】計算幾何筆記
- [CSS LEARN]Border與多邊形CSS
- 【JAVA】多邊形重心計算Java
- 折線(Polyline)、多邊形(Polygon)Go
- matlab繪製正多邊形Matlab
- [學習筆記] 邊學教程邊建“知識付費”應用 第1次總結筆記
- 深度學習和幾何(演講提要)深度學習
- 微分幾何學習(一)(向量函式)函式
- CSS繪製各種幾何圖形形狀效果CSS
- D3力導向圖使用總結
- 學習總結
- CSS繪製各種幾何形狀CSS
- HexMap學習筆記(一)——建立六邊形網格筆記
- iOS邊下邊播總結iOS
- 分形、分形幾何、資料視覺化、Python繪圖視覺化Python繪圖
- ConstraintLayout 學習總結AI
- BOM學習總結
- tkinter學習總結
- vue學習總結Vue
- HSF學習總結
- ElasticSearch 學習總結Elasticsearch
- Storm學習總結ORM
- vue 學習總結Vue
- lua 學習總結
- Angularjs 學習總結AngularJS
- WebRTC學習總結Web
- GCD 學習總結GC
- CompletableFuture學習總結