d3-polygon
这个模块提供了一些二维多边形的基本几何运算。每个多边形都被表示为一个二维数组[[x1, y1], [x2, y2], …],该数组可以是封闭的(既第一个点和最后一个点是相同的),也可以是开放的(既第一个点和最后一个点不同)。通常多边形是逆时针顺序,假设坐标系原点⟨0,0⟩位于左上角。
Installing
如果你使用npm,请键入npm install d3-polygon
。否则,请下载最新版本。你也可以直接从d3js.org加载,作为standalone library(独立库)或D3 4.0的一部分来使用。支持AMD,CommonJS和vanilla环境。在vanilla环境下,会输出一个全局的d3
:
<script src="https://d3js.org/d3-polygon.v1.min.js"></script>
<script>
var hull = d3.polygonHull(points);
</script>
API Reference
d3.polygonArea(polygon)
返回给定polygon的signed area(有号区域)。如果polygon的顶点是逆时针顺序(假设坐标系原点⟨0,0⟩位于左上角),则返回的区域为正,否则为负或0。
d3.polygonCentroid(polygon)
返回给定polygon的中心。
d3.polygonHull(points)
使用Andrew’s monotone chain algorithm返回给定points的convex hull(凸包)。返回的hull为一个数组,包含以逆时针顺序排列的points的子集。如果points少于三个元素,则返回null。
d3.polygonContains(polygon, point)
当且仅当给定point在给定polygon中时才返回true。
d3.polygonLength(polygon)
返回给定polygon的周长。