d3-polygon
此模組提供一些基本幾何運算,用於二維多邊形。每個多邊形表示為二元陣列陣列 [[x0, y0], [x1, y1], …],且可以是封閉的(其中第一個點和最後一個點相同)或開放的(其中它們不同)。通常多邊形是逆時針順序,假設一個座標系統,其中原點位於左上角。
polygonArea(polygon)
js
d3.polygonArea([[1, 1], [1.5, 0], [2, 1]]) // -0.5
來源 · 傳回指定 polygon 的有號面積。如果多邊形的頂點是逆時針順序(假設一個座標系統,其中原點位於左上角),則傳回的面積為正值;否則為負值或零。
polygonCentroid(polygon)
js
d3.polygonCentroid([[1, 1], [1.5, 0], [2, 1]]) // [1.5, 0.6666666666666666]
polygonHull(points)
js
d3.polygonHull(points) // [[3.0872864263338777, -1.300100095019402], [1.6559368816733773, -2.5092525689499605], …]
原始碼 · 使用 Andrew 單調鏈演算法傳回指定 點 的 凸包。傳回的凸包表示為包含輸入 點 子集的陣列,以逆時針順序排列。如果 點 少於三個元素,則傳回 null。
polygonContains(polygon, point)
js
d3.polygonContains([[1, 1], [1.5, 0], [2, 1]], [1.5, 0.667]) // true
原始碼 · 僅當指定 點 在指定 多邊形 內部時,傳回 true。
polygonLength(polygon)
js
d3.polygonLength([[1, 1], [1.5, 0], [2, 1]]) // 3.23606797749979
原始碼 · 傳回指定 多邊形 周長的長度。